Unified field descriptor. More...
Public Types | |
| using | access = typename detail::select_access<Attr...>::type |
| using | endian_mode = typename detail::select_endian<Attr...>::type |
| using | fixed_tag = typename detail::select_fixed_tag<Attr...>::type |
| using | granularity = typename detail::select_word<Attr...>::type |
| using | init_tag = typename detail::select_init_tag<Attr...>::type |
| using | locator = Locator |
| using | transformer = typename detail::select_transform<Attr...>::type |
| using | type = Type |
Static Public Attributes | |
| static constexpr u64 | fixed_value = detail::raw_tag_bits<fixed_tag>::value |
| static constexpr bool | has_fixed = !std::is_same_v<fixed_tag, detail::none_token> |
| static constexpr bool | has_init = !std::is_same_v<init_tag, detail::none_token> |
| static constexpr u64 | init_value = detail::raw_tag_bits<init_tag>::value |
| static constexpr bool | is_overlay = (detail::is_overlay_v<Attr> || ...) |
| static constexpr bool | is_unaligned = (detail::is_unaligned_v<Attr> || ...) |
| static constexpr auto | name = Name |
Unified field descriptor.
| Name | Structural compile-time field name. |
| Locator | Position descriptor: bit_slice for records; slice, byte_span, bank, auto_layout, or a std::tuple of any of these (disjoint) for structures. |
| Type | Value type (void = inferred from storage/width). |
| Attr | Modifier tags: access policy, value transform, endianness, alignment, bus granularity, overlay, init<>, fixed<>. |