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.
template <typename IndexConstant>
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 size_t aligned_stride constexpr
The number of rows to advance to maintain the requested alignment for every column.
static size_t column_alignments constexpr
Array containing the alignment for each column.
static size_t column_count constexpr
The number of columns in the table.
template <typename BackingTable, typename... Args>
static bool emplace_back_is_nothrow constexpr
True if a generated class's emplace_back() would be nothrow.
template <typename BackingTable, typename... Args>
static bool emplace_is_nothrow constexpr
True if a generated class's emplace() would be nothrow.
template <typename BackingTable>
static bool insert_is_nothrow constexpr
True if a generated class's lvalue insert() would be nothrow.
static size_t largest_alignment constexpr
The max alignment of all columns in the table.
template <typename BackingTable>
static bool push_back_is_nothrow constexpr
True if a generated class's lvalue push_back() would be nothrow.
template <typename BackingTable, typename Row>
static bool row_insert_is_nothrow constexpr
True if a generated class's row insert() would be nothrow.
template <typename BackingTable, typename Row>
static bool row_push_back_is_nothrow constexpr
True if a generated class's row push_back() would be nothrow.
template <typename BackingTable>
static bool rvalue_insert_is_nothrow constexpr
True if a generated class's rvalue insert() would be nothrow.
template <typename BackingTable>
static bool rvalue_push_back_is_nothrow constexpr
True if a generated class's rvalue push_back() would be nothrow.
static 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 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 bool soagen::table_traits::emplace_back_is_nothrow constexpr

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

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

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

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

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

template <typename... Columns>
template <typename BackingTable>
static bool soagen::table_traits::insert_is_nothrow constexpr

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

Template parameters
BackingTable The backing soagen::table type.

template <typename... Columns>
template <typename BackingTable>
static bool soagen::table_traits::push_back_is_nothrow constexpr

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

Template parameters
BackingTable The backing soagen::table type.

template <typename... Columns>
template <typename BackingTable, typename Row>
static bool soagen::table_traits::row_insert_is_nothrow constexpr

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

Template parameters
BackingTable The backing soagen::table type.
Row The row type.

template <typename... Columns>
template <typename BackingTable, typename Row>
static bool soagen::table_traits::row_push_back_is_nothrow constexpr

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

Template parameters
BackingTable The backing soagen::table type.
Row The row type.

template <typename... Columns>
template <typename BackingTable>
static bool soagen::table_traits::rvalue_insert_is_nothrow constexpr

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

Template parameters
BackingTable The backing soagen::table type.

template <typename... Columns>
template <typename BackingTable>
static bool soagen::table_traits::rvalue_push_back_is_nothrow constexpr

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

Template parameters
BackingTable The backing soagen::table type.