ZXFoundation™ 26h2
Loading...
Searching...
No Matches
lib::field< Name, Locator, Type, Attr > Struct Template Referenceexport

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

Detailed Description

template<fixed_string Name, class Locator, class Type = void, class... Attr>
struct lib::field< Name, Locator, Type, Attr >

Unified field descriptor.

Template Parameters
NameStructural compile-time field name.
LocatorPosition descriptor: bit_slice for records; slice, byte_span, bank, auto_layout, or a std::tuple of any of these (disjoint) for structures.
TypeValue type (void = inferred from storage/width).
AttrModifier tags: access policy, value transform, endianness, alignment, bus granularity, overlay, init<>, fixed<>.

The documentation for this struct was generated from the following file: