TRIQS/TRIQS 4.0.0
Researching Interacting Quantum Systems
Loading...
Searching...
No Matches
Type traits and metaprogramming

Detailed Description

Type traits, concept helpers and template-metaprogramming utilities.

Namespaces

namespace  triqs::utility::tags
 Namespace for empty tag types identifying the four basic arithmetic operations used in expression templates.

Classes

struct  triqs::_and< T >
 Boolean AND fold over a parameter pack of integral_constant-like traits. More...
struct  triqs::_or< T >
 Boolean OR fold over a parameter pack of integral_constant-like traits. More...
struct  triqs::count_type_occurrence< T, A >
 Number of types in a parameter pack that derive from (or are equal to) a given type. More...
struct  triqs::count_type_occurrence_not< T, A >
 Number of types in a parameter pack that do not derive from (or are equal to) a given type. More...
struct  triqs::is_complex< T >
 Trait that checks if a type is complex. More...
struct  triqs::is_view< T >
 Trait that detects view types by checking for inheritance from is_view_tag. More...
struct  triqs::is_view_tag
 Empty tag inherited by every view type in TRIQS. See also is_view. More...
struct  triqs::remove_cv_ref< T >
 Strip cv- and reference-qualifiers from a type. More...
struct  triqs::utility::callable_traits< F >
 Type trait for a callable type with a single, non-overloaded operator(). More...
struct  triqs::utility::is_in_ZRC< T >
 Trait identifying types that lie in \( \mathbb{Z} \cup \mathbb{R} \cup \mathbb{C} \). More...
struct  triqs::utility::operation< Tag >
 Callable wrapper that evaluates the operation identified by Tag on two operands. More...
struct  triqs::utility::remove_rvalue_ref< T >
 Strip rvalue references from T while turning lvalue references into const &. More...
struct  triqs::utility::type_of_mult< A, B >
 Trait whose nested type is decltype(a * b) with cv-/ref-qualifiers stripped from the operands. More...

Typedefs

template<bool B>
using triqs::bool_constant = std::integral_constant<bool, B>
 Alias for std::integral_constant<bool, B>.
template<typename T>
using triqs::const_view_or_type_t = typename details::_const_view_or_type<T>::type
 Get the const view type of a given type T if it exists.
template<typename T>
using triqs::regular_t = typename details::_regular<std::decay_t<T>>::type
 Get the regular type of a given type T if it exists.
template<class T>
using triqs::utility::remove_rvalue_ref_t = typename remove_rvalue_ref<T>::type
 Alias for the nested type in remove_rvalue_ref.
template<typename T>
using triqs::view_or_type_t = typename details::_view_or_type<T>::type
 Get the view type of a given type T if it exists.

Typedef Documentation

◆ bool_constant

template<bool B>
using triqs::bool_constant = std::integral_constant<bool, B>

#include <triqs/utility/traits.hpp>

Alias for std::integral_constant<bool, B>.

Warning
This is unused. It might be removed in the future.

Definition at line 56 of file traits.hpp.

◆ const_view_or_type_t

template<typename T>
using triqs::const_view_or_type_t = typename details::_const_view_or_type<T>::type

#include <triqs/utility/view_tools.hpp>

Get the const view type of a given type T if it exists.

Falls back to T.

Template Parameters
TContainer or scalar type.

Definition at line 89 of file view_tools.hpp.

◆ regular_t

template<typename T>
using triqs::regular_t = typename details::_regular<std::decay_t<T>>::type

#include <triqs/utility/view_tools.hpp>

Get the regular type of a given type T if it exists.

Falls back to std::decay_t<T>.

Template Parameters
TType to inspect.

Definition at line 75 of file view_tools.hpp.

◆ view_or_type_t

template<typename T>
using triqs::view_or_type_t = typename details::_view_or_type<T>::type

#include <triqs/utility/view_tools.hpp>

Get the view type of a given type T if it exists.

Falls back to T.

Template Parameters
TType to inspect.

Definition at line 82 of file view_tools.hpp.