16 #ifndef OPENKALMAN_OBJECT_TRAITS_HPP 17 #define OPENKALMAN_OBJECT_TRAITS_HPP 19 #ifdef DOXYGEN_SHOULD_SKIP_THIS 20 #include "coordinates/coordinates.hpp" 36 template<
typename T,
typename =
void>
47 #ifdef DOXYGEN_SHOULD_SKIP_THIS 53 get_mdspan = [](std::convertible_to<const T&>
auto&& t) -> decltype(
auto) {
return std::mdspan{t}; };
84 get_constant = [](std::convertible_to<const T&>
auto&&) ->
values::value auto {
return ...; };
95 ->
indexible decltype(
auto) {
return std::forward<decltype(t)>(t); };
104 template<applicability b>
105 static constexpr
bool 113 static constexpr
bool 114 is_triangular_adapter =
false;
124 static constexpr
bool 125 is_hermitian =
false;
138 #endif // DOXYGEN_SHOULD_SKIP_THIS constexpr auto get_mdspan(T &t)
Get the coordinates::pattern_collection associated with indexible object T.
Definition: get_mdspan.hpp:35
Definition: basics.hpp:41
triangle_type
The type of a triangular matrix.
Definition: enumerations.hpp:26
constexpr bool indexible
T is a multidimensional array type.
Definition: indexible.hpp:32
decltype(auto) constexpr get_pattern_collection(T &&t)
Get the coordinates::pattern_collection associated with indexible object T.
Definition: get_pattern_collection.hpp:59
HermitianAdapterType
The type of a hermitian adapter, indicating which triangle of the nested matrix is used...
Definition: enumerations.hpp:79
constexpr bool value
T is a fixed or dynamic value that is reducible to a number.
Definition: value.hpp:45
Enumerations relating to linear algebra.
Lower, upper, or diagonal matrix.
static const bool is_specialized
Identifies types for which object_traits is specialized.
Definition: object_traits.hpp:44
Definition: object_traits.hpp:38
constexpr bool pattern_collection
An object describing a collection of /ref pattern objects.
Definition: pattern_collection.hpp:65
decltype(auto) constexpr nested_object(Arg &&arg)
Retrieve a nested object of Arg, if it exists.
Definition: nested_object.hpp:35