soagen::examples::entities class

entities

Public types

using allocator_type = soagen::allocator_type<entities>
The allocator type used by this class.
template <auto Column>
using column_traits = /* ... */
Gets the soagen::column_traits for a specific column of the table.
template <auto Column>
using column_type = /* ... */
Gets the type of a specific column in the table.
using columns = /* ... */
Named index constants for all of the columns in the table.
using const_iterator = soagen::const_iterator_type<entities>
Row iterators returned by const-qualified iterator functions.
using const_row_type = soagen::const_row_type<entities>
Const row type used by this class.
using const_span_type = soagen::const_span_type<entities>
Const-qualified span type.
using difference_type = std::ptrdiff_t
The signed integer difference type used by this class.
using iterator = soagen::iterator_type<entities>
Row iterators returned by iterator functions.
using row_type = soagen::row_type<entities>
Regular (lvalue-qualified) row type used by this class.
using rvalue_iterator = soagen::rvalue_iterator_type<entities>
Row iterators returned by rvalue-qualified iterator functions.
using rvalue_row_type = soagen::rvalue_row_type<entities>
Rvalue row type used by this class.
using rvalue_span_type = soagen::rvalue_span_type<entities>
Rvalue-qualified span type.
using size_type = std::size_t
The unsigned integer size type used by this class.
using span_type = soagen::span_type<entities>
Regular (lvalue-qualified) span type.
using table_traits = soagen::table_traits_type<entities>
The soagen::table_traits for the underlying table.
using table_type = soagen::table_type<entities>
This class's underlying soagen::table type.

Public static variables

static constexpr size_type aligned_stride constexpr
The number of rows to advance to maintain the requested alignment for every column.
static constexpr size_type column_count constexpr
The number of columns in the table.
template <auto Column>
static constexpr auto& column_name constexpr
Gets the name of the specified column as a null-terminated string.

Constructors, destructors, conversion operators

entities() defaulted
Default constructor.
entities(entities&&) defaulted
Move constructor.
entities(const entities&) defaulted
Copy constructor.
~entities() defaulted
Destructor.

Public functions

auto entities(const allocator_type& alloc) →  constexpr explicit constexpr noexcept
Constructs with the given allocator.
auto entities(allocator_type&& alloc) →  constexpr explicit constexpr noexcept
Constructs with the given allocator.
auto get_allocator() const →  constexpr allocator_type constexpr noexcept
Returns the allocator being used by the table.
auto operator=(entities&&) →  entities& defaulted
Move-assignment operator.
auto operator=(const entities&) →  entities& defaulted
Copy-assignment operator.

Adding rows

template <typename Id, typename Name = column_traits<1>::default_emplace_type, typename Pos = column_traits<2>::default_emplace_type, typename Orient = column_traits<3>::default_emplace_type>
auto emplace_back(Id&& id, Name&& name = "", Pos&& pos = {}, Orient&& orient = { 1, 0, 0, 0 }) →  constexpr entities& constexpr noexcept(…)
Constructs a new row directly in-place at the end of the table.
template <typename Tuple>
auto emplace_back(Tuple&& tuple_) →  constexpr entities& constexpr noexcept(…)
Constructs a new row directly in-place at the end of the table by unpacking a tuple-like object.
auto push_back(column_traits<0>::param_type id, column_traits<1>::param_type name = "", column_traits<2>::param_type pos = {}, column_traits<3>::param_type orient = { 1, 0, 0, 0 }) →  constexpr entities& constexpr noexcept(…)
Adds a new row at the end of the table.
auto push_back(column_traits<0>::rvalue_type id, column_traits<1>::rvalue_type name = "", column_traits<2>::rvalue_type pos = {}, column_traits<3>::rvalue_type orient = { 1, 0, 0, 0 }) →  constexpr entities& constexpr noexcept(…)
Adds a new row at the end of the table (rvalue overload).

Capacity

auto allocation_size() const →  constexpr size_type constexpr noexcept
Returns the size of the current underlying buffer allocation in bytes.
auto empty() const →  constexpr bool constexpr noexcept
Returns true if the number of rows is zero.
auto max_size() const →  constexpr size_type constexpr noexcept
Returns the maximum possible number of rows.
auto reserve(size_type new_cap) const →  entities& noexcept
Reserves storage for (at least) the given number of rows.
auto shrink_to_fit() →  entities& noexcept(…)
Frees unused capacity.
auto size() const →  constexpr size_type constexpr noexcept
Returns the current number of rows.

Columns

template <auto Column>
auto column() →  constexpr column_type<Column>* constexpr noexcept
Returns a pointer to the elements of a specific column.
template <auto Column>
auto column() const →  constexpr std::add_const_t<column_type<Column>>* constexpr noexcept
Returns a pointer to the elements of a specific column.
auto data() →  constexpr std::byte* constexpr noexcept
Returns a pointer to the raw byte backing array.
auto data() →  constexpr const std::byte*const constexpr noexcept
Returns a pointer to the raw byte backing array.
template <typename Func>
auto for_each_column(Func&& func) →  constexpr void constexpr noexcept(…)
Invokes a function once for each column data pointer.
template <typename Func>
auto for_each_column(Func&& func) const →  constexpr void constexpr noexcept(…)
Invokes a function once for each column data pointer.
auto id() →  constexpr unsigned* constexpr noexcept
Returns a pointer to the elements in column [0]: id.
auto id() const →  constexpr const unsigned* constexpr noexcept
Returns a pointer to the elements in column [0]: id.
auto name() →  constexpr std::string* constexpr noexcept
Returns a pointer to the elements in column [1]: name.
auto name() const →  constexpr const std::string* constexpr noexcept
Returns a pointer to the elements in column [1]: name.
auto orient() →  constexpr quaternion* constexpr noexcept
Returns a pointer to the elements in column [3]: orient.
auto orient() const →  constexpr const quaternion* constexpr noexcept
Returns a pointer to the elements in column [3]: orient.
auto pos() →  constexpr vec3* constexpr noexcept
Returns a pointer to the elements in column [2]: pos.
auto pos() const →  constexpr const vec3* constexpr noexcept
Returns a pointer to the elements in column [2]: pos.

Comparison

auto operator<(const entities& lhs, const entities& rhs) →  constexpr bool constexpr noexcept(…)
Returns true if the LHS table is ordered lexicographically less-than the RHS table.
auto operator<=(const entities& lhs, const entities& rhs) →  constexpr bool constexpr noexcept(…)
Returns true if the LHS table is ordered lexicographically less-than-or-equal-to the RHS table.
auto operator>(const entities& lhs, const entities& rhs) →  constexpr bool constexpr noexcept(…)
Returns true if the LHS table is ordered lexicographically greater-than the RHS table.
auto operator>=(const entities& lhs, const entities& rhs) →  constexpr bool constexpr noexcept(…)
Returns true if the LHS table is ordered lexicographically greater-than-or-equal-to the RHS table.

Equality

auto operator!=(const entities& lhs, const entities& rhs) →  constexpr bool constexpr noexcept(…)
Returns true if not all of the elements in two tables are equal.
auto operator==(const entities& lhs, const entities& rhs) →  constexpr bool constexpr noexcept(…)
Returns true if all of the elements in two tables are equal.

Inserting rows

template <typename Id, typename Name = column_traits<1>::default_emplace_type, typename Pos = column_traits<2>::default_emplace_type, typename Orient = column_traits<3>::default_emplace_type>
auto emplace(size_type index_, Id&& id, Name&& name = "", Pos&& pos = {}, Orient&& orient = { 1, 0, 0, 0 }) →  constexpr entities& constexpr noexcept(…)
Constructs a new row directly in-place at an arbitrary position in the table.
template <typename Tuple>
auto emplace(size_type index_, Tuple&& tuple_) →  constexpr entities& constexpr noexcept(…)
Constructs a new row directly in-place at an arbitrary position in the table by unpacking a tuple-like object.
template <typename Id, typename Name = column_traits<1>::default_emplace_type, typename Pos = column_traits<2>::default_emplace_type, typename Orient = column_traits<3>::default_emplace_type>
auto emplace(iterator iter_, Id&& id, Name&& name = "", Pos&& pos = {}, Orient&& orient = { 1, 0, 0, 0 }) →  constexpr iterator constexpr noexcept(…)
Constructs a new row directly in-place at an arbitrary position in the table.
template <typename Tuple>
auto emplace(iterator iter_, Tuple&& tuple_) →  constexpr iterator constexpr noexcept(…)
Constructs a new row directly in-place at an arbitrary position in the table by unpacking a tuple-like object.
template <typename Id, typename Name = column_traits<1>::default_emplace_type, typename Pos = column_traits<2>::default_emplace_type, typename Orient = column_traits<3>::default_emplace_type>
auto emplace(const_iterator iter_, Id&& id, Name&& name = "", Pos&& pos = {}, Orient&& orient = { 1, 0, 0, 0 }) →  constexpr const_iterator constexpr noexcept(…)
Constructs a new row directly in-place at an arbitrary position in the table.
template <typename Tuple>
auto emplace(const_iterator iter_, Tuple&& tuple_) →  constexpr const_iterator constexpr noexcept(…)
Constructs a new row directly in-place at an arbitrary position in the table by unpacking a tuple-like object.
auto insert(size_type index_, column_traits<0>::param_type id, column_traits<1>::param_type name = "", column_traits<2>::param_type pos = {}, column_traits<3>::param_type orient = { 1, 0, 0, 0 }) →  constexpr entities& constexpr noexcept(…)
Inserts a new row at an arbitrary position in the table.
auto insert(size_type index_, column_traits<0>::rvalue_type id, column_traits<1>::rvalue_type name = "", column_traits<2>::rvalue_type pos = {}, column_traits<3>::rvalue_type orient = { 1, 0, 0, 0 }) →  constexpr entities& constexpr noexcept(…)
Inserts a new row at an arbitrary position in the table (rvalue overload).
auto insert(iterator iter_, column_traits<0>::param_type id, column_traits<1>::param_type name = "", column_traits<2>::param_type pos = {}, column_traits<3>::param_type orient = { 1, 0, 0, 0 }) →  constexpr iterator constexpr noexcept(…)
Inserts a new row at an arbitrary position in the table.
auto insert(const_iterator iter_, column_traits<0>::param_type id, column_traits<1>::param_type name = "", column_traits<2>::param_type pos = {}, column_traits<3>::param_type orient = { 1, 0, 0, 0 }) →  constexpr const_iterator constexpr noexcept(…)
Inserts a new row at an arbitrary position in the table.
auto insert(iterator iter_, column_traits<0>::rvalue_type id, column_traits<1>::rvalue_type name = "", column_traits<2>::rvalue_type pos = {}, column_traits<3>::rvalue_type orient = { 1, 0, 0, 0 }) →  constexpr iterator constexpr noexcept(…)
Inserts a new row at an arbitrary position in the table (rvalue overload).
auto insert(const_iterator iter_, column_traits<0>::rvalue_type id, column_traits<1>::rvalue_type name = "", column_traits<2>::rvalue_type pos = {}, column_traits<3>::rvalue_type orient = { 1, 0, 0, 0 }) →  constexpr const_iterator constexpr noexcept(…)
Inserts a new row at an arbitrary position in the table (rvalue overload).

Iterators

template <auto... Cols>
auto begin() & →  constexpr soagen::iterator_type<entities, Cols...> constexpr noexcept
Returns an iterator to the first row in the table.
template <auto... Cols>
auto begin() && →  constexpr soagen::iterator_type<entities && , Cols...> constexpr noexcept
Returns an iterator to the first row in the table.
template <auto... Cols>
auto begin() const & →  constexpr soagen::const_iterator_type<entities, Cols...> constexpr noexcept
Returns an iterator to the first row in the table.
template <auto... Cols>
auto cbegin() const →  constexpr soagen::const_iterator_type<entities, Cols...> constexpr noexcept
Returns an iterator to the first row in the table.
template <auto... Cols>
auto cend() const →  constexpr soagen::const_iterator_type<entities, Cols...> constexpr noexcept
Returns an iterator to one-past-the-last row in the table.
template <auto... Cols>
auto end() & →  constexpr soagen::iterator_type<entities, Cols...> constexpr noexcept
Returns an iterator to one-past-the-last row in the table.
template <auto... Cols>
auto end() && →  constexpr soagen::iterator_type<entities && , Cols...> constexpr noexcept
Returns an iterator to one-past-the-last row in the table.
template <auto... Cols>
auto end() const & →  constexpr soagen::const_iterator_type<entities, Cols...> constexpr noexcept
Returns an iterator to one-past-the-last row in the table.

Modifiers

auto clear() →  entities& noexcept
Removes all rows from table.
auto erase(size_type pos) →  constexpr entities& constexpr noexcept(…)
Erases the row at the given position.
auto erase(iterator pos) →  constexpr iterator constexpr noexcept(…)
Erases the row at the given iterator.
auto erase(const_iterator pos) →  constexpr const_iterator constexpr noexcept(…)
Erases the row at the given iterator.
auto pop_back(size_type num = 1) →  entities& noexcept(…)
Removes the last row(s) from the table.
auto resize(size_type new_size) →  entities& noexcept(…)
Resizes the table to the given number of rows.
auto swap(entities& other) →  constexpr void constexpr noexcept(…)
Swaps the contents of the table with another.
template <auto A, auto B>
auto swap_columns() →  constexpr entities& constexpr noexcept(…)
Swaps two columns.
auto unordered_erase(size_type pos) →  constexpr soagen::optional<size_type> constexpr noexcept(…)
Erases the row at the given position without preserving order.
auto unordered_erase(iterator pos) →  constexpr soagen::optional<iterator> constexpr noexcept(…)
Erases the row at the given position without preserving order.
auto unordered_erase(const_iterator pos) →  constexpr soagen::optional<const_iterator> constexpr noexcept(…)
Erases the row at the given position without preserving order.

Rows

template <auto... Cols>
auto at(size_type index) & →  soagen::row_type<entities, Cols...>
Returns the row at the given index.
template <auto... Cols>
auto at(size_type index) && →  soagen::row_type<entities && , Cols...>
Returns the row at the given index.
template <auto... Cols>
auto at(size_type index) const & →  soagen::const_row_type<entities, Cols...>
Returns the row at the given index.
template <auto... Cols>
auto back() & →  soagen::row_type<entities, Cols...> noexcept
Returns the very last row in the table.
template <auto... Cols>
auto back() && →  soagen::row_type<entities && , Cols...> noexcept
Returns the very last row in the table.
template <auto... Cols>
auto back() const & →  soagen::const_row_type<entities, Cols...> noexcept
Returns the very last row in the table.
template <auto... Cols>
auto front() & →  soagen::row_type<entities, Cols...> noexcept
Returns the very first row in the table.
template <auto... Cols>
auto front() && →  soagen::row_type<entities && , Cols...> noexcept
Returns the very first row in the table.
template <auto... Cols>
auto front() const & →  soagen::const_row_type<entities, Cols...> noexcept
Returns the very first row in the table.
auto operator[](size_type index) & →  row_type noexcept
Returns the row at the given index.
auto operator[](size_type index) && →  rvalue_row_type noexcept
Returns the row at the given index.
auto operator[](size_type index) const & →  const_row_type noexcept
Returns the row at the given index.
template <auto... Cols>
auto row(size_type index) & →  soagen::row_type<entities, Cols...> noexcept
Returns the row at the given index.
template <auto... Cols>
auto row(size_type index) && →  soagen::row_type<entities && , Cols...> noexcept
Returns the row at the given index.
template <auto... Cols>
auto row(size_type index) const & →  soagen::const_row_type<entities, Cols...> noexcept
Returns the row at the given index.

Spans

auto const_subspan(size_type start, size_type count = static_cast<size_type>(-1)) const →  const_span_type noexcept
Returns a const-qualified span of (some part of) the table.
auto subspan(size_type start, size_type count = static_cast<size_type>(-1)) & →  span_type noexcept
Returns a span of (some part of) the table.
auto subspan(size_type start, size_type count = static_cast<size_type>(-1)) && →  rvalue_span_type noexcept
Returns an rvalue-qualified span of (some part of) the table.
auto subspan(size_type start, size_type count = static_cast<size_type>(-1)) const & →  const_span_type noexcept
Returns a const-qualified span of (some part of) the table.

Underlying table

auto operator const table_type&() const →  constexpr explicit constexpr noexcept
Returns a const lvalue reference to the underlying soagen::table.
auto operator table_type&() →  constexpr explicit constexpr noexcept
Returns an lvalue reference to the underlying soagen::table.
auto operator table_type&&() →  constexpr explicit constexpr noexcept
Returns an rvalue reference to the underlying soagen::table.
auto table() & →  constexpr table_type& constexpr noexcept
Returns an lvalue reference to the underlying soagen::table.
auto table() && →  constexpr table_type&& constexpr noexcept
Returns an rvalue reference to the underlying soagen::table.
auto table() const & →  constexpr const table_type& constexpr noexcept
Returns a const lvalue reference to the underlying soagen::table.

Function documentation

constexpr size_type soagen::examples::entities::allocation_size() const constexpr noexcept

Returns the size of the current underlying buffer allocation in bytes.

entities& soagen::examples::entities::reserve(size_type new_cap) const noexcept

Reserves storage for (at least) the given number of rows.

Returns the number of rows that can be held in currently allocated storage.

constexpr std::byte* soagen::examples::entities::data() constexpr noexcept

Returns a pointer to the raw byte backing array.

constexpr const std::byte*const soagen::examples::entities::data() constexpr noexcept

Returns a pointer to the raw byte backing array.

template <typename Func>
constexpr void soagen::examples::entities::for_each_column(Func&& func) constexpr noexcept(…)

Invokes a function once for each column data pointer.

Parameters
func The callable to invoke.

template <typename Func>
constexpr void soagen::examples::entities::for_each_column(Func&& func) const constexpr noexcept(…)

Invokes a function once for each column data pointer.

Parameters
func The callable to invoke.

template <typename Id, typename Name = column_traits<1>::default_emplace_type, typename Pos = column_traits<2>::default_emplace_type, typename Orient = column_traits<3>::default_emplace_type>
constexpr entities& soagen::examples::entities::emplace(size_type index_, Id&& id, Name&& name = "", Pos&& pos = {}, Orient&& orient = { 1, 0, 0, 0 }) constexpr noexcept(…)

Constructs a new row directly in-place at an arbitrary position in the table.

template <typename Tuple>
constexpr entities& soagen::examples::entities::emplace(size_type index_, Tuple&& tuple_) constexpr noexcept(…)

Constructs a new row directly in-place at an arbitrary position in the table by unpacking a tuple-like object.

template <typename Id, typename Name = column_traits<1>::default_emplace_type, typename Pos = column_traits<2>::default_emplace_type, typename Orient = column_traits<3>::default_emplace_type>
constexpr iterator soagen::examples::entities::emplace(iterator iter_, Id&& id, Name&& name = "", Pos&& pos = {}, Orient&& orient = { 1, 0, 0, 0 }) constexpr noexcept(…)

Constructs a new row directly in-place at an arbitrary position in the table.

template <typename Tuple>
constexpr iterator soagen::examples::entities::emplace(iterator iter_, Tuple&& tuple_) constexpr noexcept(…)

Constructs a new row directly in-place at an arbitrary position in the table by unpacking a tuple-like object.

template <typename Id, typename Name = column_traits<1>::default_emplace_type, typename Pos = column_traits<2>::default_emplace_type, typename Orient = column_traits<3>::default_emplace_type>
constexpr const_iterator soagen::examples::entities::emplace(const_iterator iter_, Id&& id, Name&& name = "", Pos&& pos = {}, Orient&& orient = { 1, 0, 0, 0 }) constexpr noexcept(…)

Constructs a new row directly in-place at an arbitrary position in the table.

template <typename Tuple>
constexpr const_iterator soagen::examples::entities::emplace(const_iterator iter_, Tuple&& tuple_) constexpr noexcept(…)

Constructs a new row directly in-place at an arbitrary position in the table by unpacking a tuple-like object.

constexpr entities& soagen::examples::entities::insert(size_type index_, column_traits<0>::param_type id, column_traits<1>::param_type name = "", column_traits<2>::param_type pos = {}, column_traits<3>::param_type orient = { 1, 0, 0, 0 }) constexpr noexcept(…)

Inserts a new row at an arbitrary position in the table.

constexpr entities& soagen::examples::entities::insert(size_type index_, column_traits<0>::rvalue_type id, column_traits<1>::rvalue_type name = "", column_traits<2>::rvalue_type pos = {}, column_traits<3>::rvalue_type orient = { 1, 0, 0, 0 }) constexpr noexcept(…)

Inserts a new row at an arbitrary position in the table (rvalue overload).

constexpr iterator soagen::examples::entities::insert(iterator iter_, column_traits<0>::param_type id, column_traits<1>::param_type name = "", column_traits<2>::param_type pos = {}, column_traits<3>::param_type orient = { 1, 0, 0, 0 }) constexpr noexcept(…)

Inserts a new row at an arbitrary position in the table.

constexpr const_iterator soagen::examples::entities::insert(const_iterator iter_, column_traits<0>::param_type id, column_traits<1>::param_type name = "", column_traits<2>::param_type pos = {}, column_traits<3>::param_type orient = { 1, 0, 0, 0 }) constexpr noexcept(…)

Inserts a new row at an arbitrary position in the table.

constexpr iterator soagen::examples::entities::insert(iterator iter_, column_traits<0>::rvalue_type id, column_traits<1>::rvalue_type name = "", column_traits<2>::rvalue_type pos = {}, column_traits<3>::rvalue_type orient = { 1, 0, 0, 0 }) constexpr noexcept(…)

Inserts a new row at an arbitrary position in the table (rvalue overload).

constexpr const_iterator soagen::examples::entities::insert(const_iterator iter_, column_traits<0>::rvalue_type id, column_traits<1>::rvalue_type name = "", column_traits<2>::rvalue_type pos = {}, column_traits<3>::rvalue_type orient = { 1, 0, 0, 0 }) constexpr noexcept(…)

Inserts a new row at an arbitrary position in the table (rvalue overload).

constexpr entities& soagen::examples::entities::erase(size_type pos) constexpr noexcept(…)

Erases the row at the given position.

constexpr iterator soagen::examples::entities::erase(iterator pos) constexpr noexcept(…)

Erases the row at the given iterator.

Returns An iterator to the row immediately following the one which was removed, or end() if the one removed was the last row in the table.

constexpr const_iterator soagen::examples::entities::erase(const_iterator pos) constexpr noexcept(…)

Erases the row at the given iterator.

Returns An iterator to the row immediately following the one which was removed, or cend() if the one removed was the last row in the table.

entities& soagen::examples::entities::resize(size_type new_size) noexcept(…)

Resizes the table to the given number of rows.

constexpr void soagen::examples::entities::swap(entities& other) constexpr noexcept(…)

Swaps the contents of the table with another.

template <auto A, auto B>
constexpr entities& soagen::examples::entities::swap_columns() constexpr noexcept(…)

Swaps two columns.

constexpr soagen::optional<size_type> soagen::examples::entities::unordered_erase(size_type pos) constexpr noexcept(…)

Erases the row at the given position without preserving order.

Returns The position of the row that was moved into the erased row's position, if any.

This is much faster than erase() because it uses the swap-and-pop idiom: Instead of shifting all the higher rows downward, the last row is moved into the position of the erased one and the size of the table is reduced by 1.

constexpr soagen::optional<iterator> soagen::examples::entities::unordered_erase(iterator pos) constexpr noexcept(…)

Erases the row at the given position without preserving order.

Returns The position of the row that was moved into the erased row's position, if any.

This is much faster than erase() because it uses the swap-and-pop idiom: Instead of shifting all the higher rows downward, the last row is moved into the position of the erased one and the size of the table is reduced by 1.

constexpr soagen::optional<const_iterator> soagen::examples::entities::unordered_erase(const_iterator pos) constexpr noexcept(…)

Erases the row at the given position without preserving order.

Returns The position of the row that was moved into the erased row's position, if any.

This is much faster than erase() because it uses the swap-and-pop idiom: Instead of shifting all the higher rows downward, the last row is moved into the position of the erased one and the size of the table is reduced by 1.

template <auto... Cols>
soagen::row_type<entities, Cols...> soagen::examples::entities::at(size_type index) &

Returns the row at the given index.

Exceptions
std::out_of_range

template <auto... Cols>
soagen::row_type<entities && , Cols...> soagen::examples::entities::at(size_type index) &&

Returns the row at the given index.

Exceptions
std::out_of_range

template <auto... Cols>
soagen::const_row_type<entities, Cols...> soagen::examples::entities::at(size_type index) const &

Returns the row at the given index.

Exceptions
std::out_of_range

template <auto... Cols>
soagen::row_type<entities, Cols...> soagen::examples::entities::row(size_type index) & noexcept

Returns the row at the given index.

Template parameters
Cols Indices of the columns to include in the row. Leave the list empty for all columns.

template <auto... Cols>
soagen::row_type<entities && , Cols...> soagen::examples::entities::row(size_type index) && noexcept

Returns the row at the given index.

Template parameters
Cols Indices of the columns to include in the row. Leave the list empty for all columns.

template <auto... Cols>
soagen::const_row_type<entities, Cols...> soagen::examples::entities::row(size_type index) const & noexcept

Returns the row at the given index.

Template parameters
Cols Indices of the columns to include in the row. Leave the list empty for all columns.

Variable documentation

static constexpr size_type soagen::examples::entities::aligned_stride constexpr

The number of rows to advance to maintain the requested alignment for every column.

The stride size you need to use when iterating through rows of this table such that the starting element for each batch in each column would have the same memory alignment as the value specified for the column-specific alignment.