|
| template<typename Plan , std::size_t... I> |
| consteval auto | yorch::detail::make_payload_node_array (std::index_sequence< I... >) |
| | Builds the compile-time node -> has-payload table for a plan.
|
| |
| template<typename Plan , std::size_t... I> |
| consteval auto | yorch::detail::make_slot_logical_policy_array (std::index_sequence< I... >) |
| | Builds the compile-time node -> logical slot policy table.
|
| |
| template<typename Plan > |
| consteval auto | yorch::detail::make_one_to_one_physical_slot_indices () |
| | Builds the one-to-one node -> physical slot index table.
|
| |
| template<typename Plan > |
| consteval auto | yorch::detail::make_serial_dfs_compact_slot_layout () |
| | Builds the serial-DFS compact node -> physical slot layout.
|
| |
| constexpr slot_physical_policy | yorch::detail::join_slot_physical_policy (slot_physical_policy left, slot_logical_policy right) noexcept |
| | Joins one node's logical policy into a physical slot policy.
|
| |
| template<typename Plan , std::size_t PhysicalSlotCount, std::size_t... I> |
| consteval auto | yorch::detail::make_physical_slot_sizes (const std::array< std::size_t, Plan::node_count > &indices, std::index_sequence< I... >) |
| | Computes the required raw storage size for each physical slot.
|
| |
| template<typename Plan , std::size_t PhysicalSlotCount, std::size_t... I> |
| consteval auto | yorch::detail::make_physical_slot_alignments (const std::array< std::size_t, Plan::node_count > &indices, std::index_sequence< I... >) |
| | Computes the required alignment for each physical slot.
|
| |
| template<typename Plan , std::size_t PhysicalSlotCount, std::size_t... I> |
| consteval auto | yorch::detail::make_physical_slot_policies (const std::array< std::size_t, Plan::node_count > &indices, std::index_sequence< I... >) |
| | Computes the storage policy for each physical slot.
|
| |
| template<typename Layout , std::size_t... K> |
| auto | yorch::detail::make_erased_slots_tuple (std::index_sequence< K... >) -> std::tuple< erased_slot< Layout::physical_slot_sizes[K], Layout::physical_slot_alignments[K], Layout::template physical_slot_policy< K > >... > |
| | Type factory for a layout's erased-slot storage tuple.
|
| |
| template<typename Plan , std::size_t PhysicalSlot> |
| consteval std::size_t | yorch::detail::one_to_one_physical_slot_owner_node () |
| | Finds the unique node that owns a one-to-one physical slot.
|
| |
| template<typename Plan , std::size_t... K> |
| auto | yorch::detail::make_typed_slots_tuple (std::index_sequence< K... >) -> std::tuple< typed_slot< typename Plan::template output_type< one_to_one_physical_slot_owner_node< Plan, K >()>, Plan::template slot_logical_policy_for< one_to_one_physical_slot_owner_node< Plan, K >()> >... > |
| | Type factory for a plan's typed one-to-one slot tuple.
|
| |