...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
A StaticRow
is a C++ type
that can be used to model a row within the static interface (i.e. can be
passed as template parameter to static_results
and static_execution_state
).
Formally, a type T
is a
StaticRow
if either of the
following is true:
struct
annotated with Boost.Describe data (i.e., having boost::describe::has_describe_members<T>::value
== true
),
and all the described members fulfill the ReadableField
exposition-only concept.
std::tuple
instantiation, and all of its types fulfill the ReadableField
exposition-only concept.
pfr_by_name
or pfr_by_position
marker types using a type Underlying
that satisfies the following:
SimpleAggregate
. For
C++14, stricter requirements apply - see the
Boost.PFR docs for more info.
union
or built-in type).
pfr::structure_to_tuple
)
satisfy ReadableField
.
Note that row types with no fields (like empty Describe structs and empty
tuples) are valid StaticRow
s.
A ReadableField
is C++ type
that can be used to model a single value in a database row. A type F
is a ReadableField
if it is any of the types listed in
this table. The set of readable field types is currently fixed and
can't be extended by the user. If this is something you have interest in,
please file an
issue with your use case to the repo.
The set of allowable types may be extended in future releases, both for fields and for rows.