Structure-domain resolution of a unified field. More...
Public Types | |
| using | element_type = std::conditional_t<is_array, std::remove_all_extents_t<value_type>, value_type> |
| using | loc = typename Field::locator |
| using | slices = typename detail::loc_slices<loc>::type |
| using | spans = typename detail::loc_spans<loc>::type |
| using | value_type = typename Field::type |
Static Public Attributes | |
| static constexpr usize | alignment = Field::is_unaligned ? 1 : alignof(element_type) |
| static constexpr usize | array_count = is_array ? std::extent_v<value_type> : 1 |
| static constexpr usize | count = detail::bank_count_of<loc>::value |
| static constexpr usize | declared_span_size = detail::span_size_of<loc>::value |
| static constexpr bool | is_array = std::is_bounded_array_v<value_type> |
| static constexpr bool | is_auto = loc_is_auto && !is_bank |
| static constexpr bool | is_bank = loc_is_bank |
| static constexpr bool | is_cross = loc_is_slice || loc_multi_slice |
| static constexpr bool | is_disjoint = loc_multi_span |
| static constexpr bool | is_pinned = loc_is_byte || loc_is_slice || loc_multi_slice || loc_multi_span |
| static constexpr bool | loc_is_auto = detail::is_auto_tag<loc>::value |
| static constexpr bool | loc_is_bank = detail::is_bank_tag<loc>::value |
| static constexpr bool | loc_is_byte = detail::is_byte_span<loc>::value |
| static constexpr bool | loc_is_slice = detail::is_slice<loc>::value |
| static constexpr bool | loc_multi_slice = detail::all_slices<loc>::value |
| static constexpr bool | loc_multi_span = detail::all_byte_spans<loc>::value |
| static constexpr usize | start |
| static constexpr usize | stride = detail::bank_stride_of<loc>::value |
| static constexpr usize | total_size |
| static constexpr usize | total_width = detail::resolve_total_width<slices, is_cross>() |
Structure-domain resolution of a unified field.