libstdc++
Metaprogramming
Collaboration diagram for Metaprogramming:

Classes

struct  std::__is_nullptr_t< _Tp >
 
struct  std::integral_constant< _Tp, __v >
 
struct  std::is_abstract< _Tp >
 
struct  std::is_arithmetic< _Tp >
 
struct  std::is_array< typename >
 
struct  std::is_class< _Tp >
 
struct  std::is_compound< _Tp >
 
struct  std::is_const< typename >
 
struct  std::is_empty< _Tp >
 
struct  std::is_enum< _Tp >
 
struct  std::is_final< _Tp >
 
struct  std::is_floating_point< _Tp >
 
struct  std::is_function< typename >
 
struct  std::is_fundamental< _Tp >
 
struct  std::is_integral< _Tp >
 
struct  std::is_literal_type< _Tp >
 
struct  std::is_lvalue_reference< typename >
 
struct  std::is_member_function_pointer< _Tp >
 
struct  std::is_member_object_pointer< _Tp >
 
struct  std::is_member_pointer< _Tp >
 
struct  std::is_null_pointer< _Tp >
 
struct  std::is_object< _Tp >
 
struct  std::is_pod< _Tp >
 
struct  std::is_pointer< _Tp >
 
struct  std::is_polymorphic< _Tp >
 
struct  std::is_reference< _Tp >
 
struct  std::is_rvalue_reference< typename >
 
struct  std::is_scalar< _Tp >
 
struct  std::is_standard_layout< _Tp >
 
struct  std::is_trivial< _Tp >
 
struct  std::is_union< _Tp >
 
struct  std::is_void< _Tp >
 
struct  std::is_volatile< typename >
 
struct  std::tr2::__reflection_typelist< _Elements >
 
struct  std::tr2::__reflection_typelist< _First, _Rest... >
 
struct  std::tr2::__reflection_typelist<>
 
struct  std::tr2::bases< _Tp >
 
struct  std::tr2::direct_bases< _Tp >
 

Macros

#define __cpp_lib_integral_constant_callable
 
#define __cpp_lib_is_final
 
#define __cpp_lib_is_null_pointer
 

Typedefs

template<bool __v>
using std::__bool_constant = integral_constant< bool, __v >
 
typedef integral_constant< bool, false > std::false_type
 
typedef integral_constant< bool, true > std::true_type
 
typedef integral_constant< _Tp, __v > std::integral_constant< _Tp, __v >::type
 
typedef _Tp std::__success_type< _Tp >::type
 
typedef _Tp std::integral_constant< _Tp, __v >::value_type
 

Functions

constexpr std::integral_constant< _Tp, __v >::operator value_type () const noexcept
 
constexpr value_type std::integral_constant< _Tp, __v >::operator() () const noexcept
 

Variables

static constexpr _Tp std::integral_constant< _Tp, __v >::value
 

Detailed Description

Template utilities for compile-time introspection and modification, including type classification traits, type property inspection traits and type transformation traits.

Macro Definition Documentation

◆ __cpp_lib_integral_constant_callable

#define __cpp_lib_integral_constant_callable

Definition at line 77 of file type_traits.

◆ __cpp_lib_is_final

#define __cpp_lib_is_final

Definition at line 715 of file type_traits.

◆ __cpp_lib_is_null_pointer

#define __cpp_lib_is_null_pointer

Definition at line 554 of file type_traits.

Typedef Documentation

◆ __bool_constant

template<bool __v>
using std::__bool_constant = typedef integral_constant<bool, __v>

Definition at line 93 of file type_traits.

◆ false_type

typedef integral_constant<bool, false> std::false_type

The type used as a compile-time boolean with false value.

Definition at line 90 of file type_traits.

◆ true_type

typedef integral_constant<bool, true> std::true_type

The type used as a compile-time boolean with true value.

Definition at line 87 of file type_traits.

◆ type [1/2]

template<typename _Tp , _Tp __v>
typedef integral_constant<_Tp, __v> std::integral_constant< _Tp, __v >::type

Definition at line 73 of file type_traits.

◆ type [2/2]

template<typename _Tp >
typedef _Tp std::__success_type< _Tp >::type

Definition at line 194 of file type_traits.

◆ value_type

template<typename _Tp , _Tp __v>
typedef _Tp std::integral_constant< _Tp, __v >::value_type

Definition at line 72 of file type_traits.

Function Documentation

◆ operator value_type()

template<typename _Tp , _Tp __v>
constexpr std::integral_constant< _Tp, __v >::operator value_type ( ) const
inlineconstexprnoexcept

Definition at line 74 of file type_traits.

◆ operator()()

template<typename _Tp , _Tp __v>
constexpr value_type std::integral_constant< _Tp, __v >::operator() ( ) const
inlineconstexprnoexcept

Definition at line 79 of file type_traits.

Variable Documentation

◆ value

template<typename _Tp , _Tp __v>
constexpr _Tp std::integral_constant< _Tp, __v >::value
staticconstexpr

Definition at line 71 of file type_traits.