dot-xx
A personal collection of small C++ modules
Loading...
Searching...
No Matches
container_traits.xx File Reference

Traits that help the library where std::ranges API isn't enought. READ THE DESCRIPTION OF math::container_traits CAREFULLY. More...

import dxx.math.linalg:traits;
import dxx.utils;
import dxx.cstd.fixed;
import std;
import dxx.assert;

Classes

struct  dxx::math::container_traits::size::Dynamic
 Size is a runtime value during construction and can be changed. More...
struct  dxx::math::container_traits::size::RuntimeFixed
 Size can't be changed but unknown at compile time. More...
struct  dxx::math::container_traits::size::Bound
 Size is a runtime value during construction and can be changed, but limited by a compile-time constant. More...
struct  dxx::math::container_traits::size::Static
 Size is a compile-time constant and cannot be modified. More...
struct  dxx::math::container_traits::Traits< V >
 Additional traits that tell the library how to handle the vector container type (when std::ranges facilities aren't enought). More...

Namespaces

namespace  dxx::math
 The main namespace of the dxx::math module.
namespace  dxx::math::container_traits
 Advanced type traits for containers.
namespace  dxx::math::container_traits::size
 Different types of sizes the vector container types can have from the libraries' perspective.
namespace  dxx::math::container_traits::autodetect
 Auto-detection of container traits.

Concepts

concept  dxx::math::container_traits::constructible
 Checks if the library knows how to construct a vector container from a runtime size value.
concept  dxx::math::container_traits::returnable
 Checks if the library knows how to use a vector container type as a return value from procedures.

Variables

template<vector V>
constexpr auto dxx::math::container_traits::autodetect::size
template<typename T, uz t_size>
constexpr auto dxx::math::container_traits::autodetect::size< std::span< T, t_size > > = size::Static{ .size = t_size }
template<typename T>
constexpr auto dxx::math::container_traits::autodetect::size< std::span< T, std::dynamic_extent > > = size::RuntimeFixed{}

Detailed Description

Traits that help the library where std::ranges API isn't enought. READ THE DESCRIPTION OF math::container_traits CAREFULLY.