TRIQS/nda 1.3.0
Multi-dimensional array library for C++
Loading...
Searching...
No Matches
Type traits

Detailed Description

General type traits used throughout the nda library.

Classes

struct  nda::is_instantiation_of< TMPLT, T >
 Check if type T is of type TMPLT<...>. More...
 

Variables

template<typename... Ts>
static constexpr bool nda::always_false = false
 Constexpr variable that is always false regardless of the types in Ts (used to trigger static_assert).
 
template<typename... Ts>
static constexpr bool nda::always_true = true
 Constexpr variable that is always true regardless of the types in Ts.
 
template<int R, typename F >
constexpr char nda::get_algebra< array_adapter< R, F > > = 'A'
 Specialization of nda::get_algebra for nda::array_adapter.
 
template<typename T , typename... Ts>
static constexpr bool nda::is_any_of = (std::is_same_v<Ts, T> or ... or false)
 Constexpr variable that is true if type T is contained in the parameter pack Ts.
 
template<typename T >
constexpr bool nda::is_blas_lapack_v = is_double_or_complex_v<T>
 Alias for nda::is_double_or_complex_v.
 
template<typename T >
constexpr bool nda::is_complex_v = is_instantiation_of_v<std::complex, T>
 Constexpr variable that is true if type T is a std::complex type.
 
template<typename T >
constexpr bool nda::is_double_or_complex_v = is_complex_v<T> or std::is_same_v<double, std::remove_cvref_t<T>>
 Constexpr variable that is true if type T is a std::complex type or a double type.
 
template<template< typename... > class TMPLT, typename T >
constexpr bool nda::is_instantiation_of_v = is_instantiation_of<TMPLT, std::remove_cvref_t<T>>::value
 Constexpr variable that is true if type T is an instantiation of TMPLT (see nda::is_instantiation_of).
 
template<typename S , typename A >
constexpr bool nda::is_scalar_for_v
 Constexpr variable used to check requirements when initializing an nda::basic_array or nda::basic_array_view of type A with some object/value of type S.
 
template<typename S >
constexpr bool nda::is_scalar_or_convertible_v = is_scalar_v<S> or std::is_constructible_v<std::complex<double>, S>
 Constexpr variable that is true if type S is a scalar type (see nda::is_scalar_v) or if a std::complex<double> can be constructed from it.
 
template<typename S >
constexpr bool nda::is_scalar_v = std::is_arithmetic_v<std::remove_cvref_t<S>> or is_complex_v<S>
 Constexpr variable that is true if type S is a scalar type, i.e. arithmetic or complex.