template <typename... Columns>
soagen::table_traits struct

Traits for a table.

Template parameters
Columns The types and/or soagen::column_traits for the columns of the table.

Public types

template <auto Index>
using column = type_at_index<static_cast<size_t>(Index), detail::as_column<Columns>...>
Returns the soagen::column_traits for the column at the specified index.
using column_from_ic = type_at_index<static_cast<size_t>(remove_cvref<IndexConstant>::value), detail::as_column<Columns>...>
Same as column but takes an index_constant.

Public static variables

static constexpr size_t aligned_stride constexpr
The number of rows to advance to maintain the requested alignment for every column.
static constexpr size_t column_alignments constexpr
Array containing the alignment for each column.
static constexpr size_t column_count constexpr
The number of columns in the table.
template <typename BackingTable, typename... Args>
static constexpr bool emplace_back_is_nothrow constexpr
True if a generated class's emplace_back() would be nothrow.
template <typename BackingTable, typename... Args>
static constexpr bool emplace_is_nothrow constexpr
True if a generated class's emplace() would be nothrow.
static constexpr bool insert_is_nothrow constexpr
True if a generated class's lvalue insert() would be nothrow.
static constexpr size_t largest_alignment constexpr
The max alignment of all columns in the table.
static constexpr bool push_back_is_nothrow constexpr
True if a generated class's lvalue push_back() would be nothrow.
static constexpr bool row_insert_is_nothrow constexpr
True if a generated class's row insert() would be nothrow.
static constexpr bool row_push_back_is_nothrow constexpr
True if a generated class's row push_back() would be nothrow.
static constexpr bool rvalue_insert_is_nothrow constexpr
True if a generated class's rvalue insert() would be nothrow.
static constexpr bool rvalue_push_back_is_nothrow constexpr
True if a generated class's rvalue push_back() would be nothrow.
static constexpr bool rvalues_are_distinct constexpr
True if the arguments passed to the rvalue overloads of push_back() and insert() would be distinct from the regular const lvalue overload.

Variable documentation

template <typename... Columns>
static constexpr size_t soagen::table_traits::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.

template <typename... Columns>
template <typename BackingTable, typename... Args>
static constexpr bool soagen::table_traits::emplace_back_is_nothrow constexpr

True if a generated class's emplace_back() would be nothrow.

Template parameters
Args The args being passed to soagen::table::emplace_back().

template <typename... Columns>
template <typename BackingTable, typename... Args>
static constexpr bool soagen::table_traits::emplace_is_nothrow constexpr

True if a generated class's emplace() would be nothrow.

Template parameters
Args The args being passed to soagen::table::emplace().