16template <
typename T, std::
size_t Dim>
33template <
typename T, std::
size_t Dim>
38 static constexpr std::size_t dim =
Dim;
41 template <
typename...
Ts>
43 static_assert(
sizeof...(xs) ==
Dim,
44 "vector_traits::operator() requires exactly Dim coordinates");
53 static constexpr auto fill(
const T& x) {
85template <
typename T, std::
size_t Dim>
constexpr std::size_t vector_dim_v
Registered compile-time vector dimension.
std::remove_cvref_t< T > remove_cvref_t
Remove top-level const, volatile, and reference qualification.
typename vector_traits_t< Vec >::element_type vector_element_t
Registered vector coordinate type.
typename vector_scalar< remove_cvref_t< Vec > >::type vector_scalar_t
Fully unwrapped scalar type underlying a possibly nested vector.
Vector(T, Ts...) -> Vector< std::common_type_t< T, Ts... >, 1+sizeof...(Ts)>
Deduce coordinate type and dimension from constructor arguments.
constexpr std::size_t mat_rows_v
Registered compile-time row count after cv/ref normalization.
Owning, fixed-size vector container.
Recursively obtain the non-vector scalar underlying a type.
static constexpr auto operator()(Ts &&... xs)
Construct from exactly Dim coordinates in index order.
T element_type
Stored coordinate type.
static constexpr auto fill(const T &x)
Construct a vector whose coordinates are all equal to x.
Customization point for fixed-size vector metadata.