33 template <
typename Identifier>
91 template <
typename Tag>
104 template <
typename Tag>
110 template <
typename Tag>
111 [[nodiscard]]
auto&
get() {
114 template <
typename Tag>
115 [[nodiscard]]
auto const&
get()
const {
127 template <
typename Tag>
128 [[nodiscard]] constexpr Tag
const&
get_tag()
const {
131 template <
typename Tag>
137 template <
typename Tag>
void move(Item *q1, Item *q2, Item *q3)
Struct used to index SoAoS data, such as array range variables.
Base class for neuron::container::soa<...> handles.
auto get_handle()
Get a data_handle<T> referring to the given field inside this handle.
std::size_t current_row() const
Return current offset in the underlying storage where this object lives.
auto & underlying_storage()
Obtain a reference to the storage this handle refers to.
auto id_hack() const
This is a workaround for id sometimes being a macro.
auto const & underlying_storage() const
Obtain a const reference to the storage this handle refers to.
auto & get(int field_index, int array_offset=0)
auto get_handle(int field_index, int array_offset=0)
Get a data_handle<T> referring to the (runtime) field_index-th copy of a given (static) field.
non_owning_identifier_without_container id() const
Obtain a lightweight identifier of the current entry.
handle_base(Identifier identifier)
Construct a handle from an identifier.
constexpr Tag const & get_tag() const
Get the instance of the given tag type from underlying storage.
auto const & get(int field_index, int array_offset=0) const
A non-owning permutation-stable identifier for an entry in a container.