type_traits File Reference

Go to the source code of this file.

## Namespaces

namespace | std

## Macros

#define | __cpp_lib_experimental_detect
#define | __cpp_lib_experimental_logical_traits
#define | __cpp_lib_experimental_type_trait_variable_templates
#define | _GLIBCXX_EXPERIMENTAL_TYPE_TRAITS

## Typedefs

template<typename _Default , template< typename... > class _Op, typename... _Args>
using | std::experimental::detected_or = std::__detected_or< _Default, _Op, _Args... >
template<typename _Default , template< typename... > class _Op, typename... _Args>
using | std::experimental::detected_or_t = typename detected_or< _Default, _Op, _Args... >::type
template<template< typename... > class _Op, typename... _Args>
using | std::experimental::detected_t = typename std::__detector< nonesuch, void, _Op, _Args... >::type
template<template< typename... > class _Op, typename... _Args>
using | std::experimental::is_detected = typename std::__detector< nonesuch, void, _Op, _Args... >::value_t
template<typename _To , template< typename... > class _Op, typename... _Args>
using | std::experimental::is_detected_convertible = is_convertible< detected_t< _Op, _Args... >, _To >
template<typename _Expected , template< typename... > class _Op, typename... _Args>
using | std::experimental::is_detected_exact = is_same< _Expected, detected_t< _Op, _Args... > >
template<typename... >
using | std::experimental::void_t = void

## Variables

template<typename _Tp >
constexpr size_t | std::experimental::alignment_of_v
template<typename... _Bn>
constexpr bool | std::experimental::conjunction_v
template<typename... _Bn>
constexpr bool | std::experimental::disjunction_v
template<typename _Tp , unsigned _Idx = 0>
constexpr size_t | std::experimental::extent_v
template<typename _Tp >
constexpr bool | std::experimental::has_virtual_destructor_v
template<typename _Tp >
constexpr bool | std::experimental::is_abstract_v
template<typename _Tp >
constexpr bool | std::experimental::is_arithmetic_v
template<typename _Tp >
constexpr bool | std::experimental::is_array_v
template<typename _Tp , typename _Up >
constexpr bool | std::experimental::is_assignable_v
template<typename _Base , typename _Derived >
constexpr bool | std::experimental::is_base_of_v
template<typename _Tp >
constexpr bool | std::experimental::is_class_v
template<typename _Tp >
constexpr bool | std::experimental::is_compound_v
template<typename _Tp >
constexpr bool | std::experimental::is_const_v
template<typename _Tp , typename... _Args>
constexpr bool | std::experimental::is_constructible_v
template<typename _From , typename _To >
constexpr bool | std::experimental::is_convertible_v
template<typename _Tp >
constexpr bool | std::experimental::is_copy_assignable_v
template<typename _Tp >
constexpr bool | std::experimental::is_copy_constructible_v
template<typename _Tp >
constexpr bool | std::experimental::is_default_constructible_v
template<typename _Tp >
constexpr bool | std::experimental::is_destructible_v
template<typename _To , template< typename... > class _Op, typename... _Args>
constexpr bool | std::experimental::is_detected_convertible_v
template<typename _Expected , template< typename... > class _Op, typename... _Args>
constexpr bool | std::experimental::is_detected_exact_v
template<template< typename... > class _Op, typename... _Args>
constexpr bool | std::experimental::is_detected_v
template<typename _Tp >
constexpr bool | std::experimental::is_empty_v
template<typename _Tp >
constexpr bool | std::experimental::is_enum_v
template<typename _Tp >
constexpr bool | std::experimental::is_final_v
template<typename _Tp >
constexpr bool | std::experimental::is_floating_point_v
template<typename _Tp >
constexpr bool | std::experimental::is_function_v
template<typename _Tp >
constexpr bool | std::experimental::is_fundamental_v
template<typename _Tp >
constexpr bool | std::experimental::is_integral_v
template<typename _Tp >
constexpr bool | std::experimental::is_literal_type_v
template<typename _Tp >
constexpr bool | std::experimental::is_lvalue_reference_v
template<typename _Tp >
constexpr bool | std::experimental::is_member_function_pointer_v
template<typename _Tp >
constexpr bool | std::experimental::is_member_object_pointer_v
template<typename _Tp >
constexpr bool | std::experimental::is_member_pointer_v
template<typename _Tp >
constexpr bool | std::experimental::is_move_assignable_v
template<typename _Tp >
constexpr bool | std::experimental::is_move_constructible_v
template<typename _Tp , typename _Up >
constexpr bool | std::experimental::is_nothrow_assignable_v
template<typename _Tp , typename... _Args>
constexpr bool | std::experimental::is_nothrow_constructible_v
template<typename _Tp >
constexpr bool | std::experimental::is_nothrow_copy_assignable_v
template<typename _Tp >
constexpr bool | std::experimental::is_nothrow_copy_constructible_v
template<typename _Tp >
constexpr bool | std::experimental::is_nothrow_default_constructible_v
template<typename _Tp >
constexpr bool | std::experimental::is_nothrow_destructible_v
template<typename _Tp >
constexpr bool | std::experimental::is_nothrow_move_assignable_v
template<typename _Tp >
constexpr bool | std::experimental::is_nothrow_move_constructible_v
template<typename _Tp >
constexpr bool | std::experimental::is_null_pointer_v
template<typename _Tp >
constexpr bool | std::experimental::is_object_v
template<typename _Tp >
constexpr bool | std::experimental::is_pod_v
template<typename _Tp >
constexpr bool | std::experimental::is_pointer_v
template<typename _Tp >
constexpr bool | std::experimental::is_polymorphic_v
template<typename _Tp >
constexpr bool | std::experimental::is_reference_v
template<typename _Tp >
constexpr bool | std::experimental::is_rvalue_reference_v
template<typename _Tp , typename _Up >
constexpr bool | std::experimental::is_same_v
template<typename _Tp >
constexpr bool | std::experimental::is_scalar_v
template<typename _Tp >
constexpr bool | std::experimental::is_signed_v
template<typename _Tp >
constexpr bool | std::experimental::is_standard_layout_v
template<typename _Tp >
constexpr bool | std::experimental::is_trivial_v
template<typename _Tp , typename _Up >
constexpr bool | std::experimental::is_trivially_assignable_v
template<typename _Tp , typename... _Args>
constexpr bool | std::experimental::is_trivially_constructible_v
template<typename _Tp >
constexpr bool | std::experimental::is_trivially_copy_assignable_v
template<typename _Tp >
constexpr bool | std::experimental::is_trivially_copy_constructible_v
template<typename _Tp >
constexpr bool | std::experimental::is_trivially_copyable_v
template<typename _Tp >
constexpr bool | std::experimental::is_trivially_default_constructible_v
template<typename _Tp >
constexpr bool | std::experimental::is_trivially_destructible_v
template<typename _Tp >
constexpr bool | std::experimental::is_trivially_move_assignable_v
template<typename _Tp >
constexpr bool | std::experimental::is_trivially_move_constructible_v
template<typename _Tp >
constexpr bool | std::experimental::is_union_v
template<typename _Tp >
constexpr bool | std::experimental::is_unsigned_v
template<typename _Tp >
constexpr bool | std::experimental::is_void_v
template<typename _Tp >
constexpr bool | std::experimental::is_volatile_v
template<typename _Pp >
constexpr bool | std::experimental::negation_v
template<typename _Tp >
constexpr size_t | std::experimental::rank_v

## Detailed Description

This is a TS C++ Library header.

Definition in file experimental/type_traits.

## Macro Definition Documentation

## __cpp_lib_experimental_detect

#define __cpp_lib_experimental_detect

Definition at line 223 of file experimental/type_traits.

## __cpp_lib_experimental_logical_traits

#define __cpp_lib_experimental_logical_traits

Definition at line 269 of file experimental/type_traits.

## __cpp_lib_experimental_type_trait_variable_templates

#define __cpp_lib_experimental_type_trait_variable_templates

Definition at line 51 of file experimental/type_traits.

## _GLIBCXX_EXPERIMENTAL_TYPE_TRAITS

#define _GLIBCXX_EXPERIMENTAL_TYPE_TRAITS

Definition at line 34 of file experimental/type_traits.

## Typedef Documentation

## detected_or

template<typename _Default , template< typename... > class _Op, typename... _Args>

using std::experimental::fundamentals_v2::detected_or = typedef std::__detected_or<_Default, _Op, _Args...>

Definition at line 249 of file experimental/type_traits.

## detected_or_t

template<typename _Default , template< typename... > class _Op, typename... _Args>

using std::experimental::fundamentals_v2::detected_or_t = typedef typename detected_or<_Default, _Op, _Args...>::type

Definition at line 252 of file experimental/type_traits.

## detected_t

template<template< typename... > class _Op, typename... _Args>

using std::experimental::fundamentals_v2::detected_t = typedef typename std::__detector<nonesuch, void, _Op, _Args...>::type

Definition at line 245 of file experimental/type_traits.

## is_detected

template<template< typename... > class _Op, typename... _Args>

using std::experimental::fundamentals_v2::is_detected = typedef typename std::__detector<nonesuch, void, _Op, _Args...>::value_t

Definition at line 238 of file experimental/type_traits.

## is_detected_convertible

template<typename _To , template< typename... > class _Op, typename... _Args>

using std::experimental::fundamentals_v2::is_detected_convertible = typedef is_convertible<detected_t<_Op, _Args...>, _To>

Definition at line 262 of file experimental/type_traits.

## is_detected_exact

template<typename _Expected , template< typename... > class _Op, typename... _Args>

using std::experimental::fundamentals_v2::is_detected_exact = typedef is_same<_Expected, detected_t<_Op, _Args...> >

Definition at line 255 of file experimental/type_traits.

## void_t

template<typename... >

using std::experimental::fundamentals_v2::void_t = typedef void

Definition at line 227 of file experimental/type_traits.

## Variable Documentation

## alignment_of_v

template<typename _Tp >

constexpr size_t std::experimental::fundamentals_v1::alignment_of_v

constexpr

Definition at line 199 of file experimental/type_traits.

## conjunction_v

template<typename... _Bn>

constexpr bool std::experimental::fundamentals_v2::conjunction_v

constexpr

Definition at line 287 of file experimental/type_traits.

## disjunction_v

template<typename... _Bn>

constexpr bool std::experimental::fundamentals_v2::disjunction_v

constexpr

Definition at line 291 of file experimental/type_traits.

## extent_v

template<typename _Tp , unsigned _Idx = 0>

constexpr size_t std::experimental::fundamentals_v1::extent_v

constexpr

Definition at line 203 of file experimental/type_traits.

## has_virtual_destructor_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::has_virtual_destructor_v

constexpr

Definition at line 194 of file experimental/type_traits.

## is_abstract_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_abstract_v

constexpr

Definition at line 121 of file experimental/type_traits.

## is_arithmetic_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_arithmetic_v

constexpr

Definition at line 89 of file experimental/type_traits.

## is_array_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_array_v

constexpr

Definition at line 63 of file experimental/type_traits.

## is_assignable_v

template<typename _Tp , typename _Up >

constexpr bool std::experimental::fundamentals_v1::is_assignable_v

constexpr

Definition at line 138 of file experimental/type_traits.

## is_base_of_v

template<typename _Base , typename _Derived >

constexpr bool std::experimental::fundamentals_v1::is_base_of_v

constexpr

Definition at line 209 of file experimental/type_traits.

## is_class_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_class_v

constexpr

Definition at line 81 of file experimental/type_traits.

## is_compound_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_compound_v

constexpr

Definition at line 97 of file experimental/type_traits.

## is_const_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_const_v

constexpr

Definition at line 103 of file experimental/type_traits.

## is_constructible_v

template<typename _Tp , typename... _Args>

constexpr bool std::experimental::fundamentals_v1::is_constructible_v

constexpr

Definition at line 129 of file experimental/type_traits.

## is_convertible_v

template<typename _From , typename _To >

constexpr bool std::experimental::fundamentals_v1::is_convertible_v

constexpr

Definition at line 211 of file experimental/type_traits.

## is_copy_assignable_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_copy_assignable_v

constexpr

Definition at line 140 of file experimental/type_traits.

## is_copy_constructible_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_copy_constructible_v

constexpr

Definition at line 134 of file experimental/type_traits.

## is_default_constructible_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_default_constructible_v

constexpr

Definition at line 131 of file experimental/type_traits.

## is_destructible_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_destructible_v

constexpr

Definition at line 144 of file experimental/type_traits.

## is_detected_convertible_v

template<typename _To , template< typename... > class _Op, typename... _Args>

constexpr bool std::experimental::fundamentals_v2::is_detected_convertible_v

constexpr

Definition at line 266 of file experimental/type_traits.

## is_detected_exact_v

template<typename _Expected , template< typename... > class _Op, typename... _Args>

constexpr bool std::experimental::fundamentals_v2::is_detected_exact_v

constexpr

Definition at line 258 of file experimental/type_traits.

## is_detected_v

template<template< typename... > class _Op, typename... _Args>

constexpr bool std::experimental::fundamentals_v2::is_detected_v

constexpr

Definition at line 242 of file experimental/type_traits.

## is_empty_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_empty_v

constexpr

Definition at line 117 of file experimental/type_traits.

## is_enum_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_enum_v

constexpr

Definition at line 77 of file experimental/type_traits.

## is_final_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_final_v

constexpr

Definition at line 123 of file experimental/type_traits.

## is_floating_point_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_floating_point_v

constexpr

Definition at line 61 of file experimental/type_traits.

## is_function_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_function_v

constexpr

Definition at line 83 of file experimental/type_traits.

## is_fundamental_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_fundamental_v

constexpr

Definition at line 91 of file experimental/type_traits.

## is_integral_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_integral_v

constexpr

Definition at line 59 of file experimental/type_traits.

## is_literal_type_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_literal_type_v

constexpr

Definition at line 115 of file experimental/type_traits.

## is_lvalue_reference_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_lvalue_reference_v

constexpr

Definition at line 67 of file experimental/type_traits.

## is_member_function_pointer_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_member_function_pointer_v

constexpr

Definition at line 74 of file experimental/type_traits.

## is_member_object_pointer_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_member_object_pointer_v

constexpr

Definition at line 71 of file experimental/type_traits.

## is_member_pointer_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_member_pointer_v

constexpr

Definition at line 99 of file experimental/type_traits.

## is_move_assignable_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_move_assignable_v

constexpr

Definition at line 142 of file experimental/type_traits.

## is_move_constructible_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_move_constructible_v

constexpr

Definition at line 136 of file experimental/type_traits.

## is_nothrow_assignable_v

template<typename _Tp , typename _Up >

constexpr bool std::experimental::fundamentals_v1::is_nothrow_assignable_v

constexpr

Definition at line 182 of file experimental/type_traits.

## is_nothrow_constructible_v

template<typename _Tp , typename... _Args>

constexpr bool std::experimental::fundamentals_v1::is_nothrow_constructible_v

constexpr

Definition at line 170 of file experimental/type_traits.

## is_nothrow_copy_assignable_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_nothrow_copy_assignable_v

constexpr

Definition at line 185 of file experimental/type_traits.

## is_nothrow_copy_constructible_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_nothrow_copy_constructible_v

constexpr

Definition at line 176 of file experimental/type_traits.

## is_nothrow_default_constructible_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_nothrow_default_constructible_v

constexpr

Definition at line 173 of file experimental/type_traits.

## is_nothrow_destructible_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_nothrow_destructible_v

constexpr

Definition at line 191 of file experimental/type_traits.

## is_nothrow_move_assignable_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_nothrow_move_assignable_v

constexpr

Definition at line 188 of file experimental/type_traits.

## is_nothrow_move_constructible_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_nothrow_move_constructible_v

constexpr

Definition at line 179 of file experimental/type_traits.

## is_null_pointer_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_null_pointer_v

constexpr

Definition at line 57 of file experimental/type_traits.

## is_object_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_object_v

constexpr

Definition at line 93 of file experimental/type_traits.

## is_pod_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_pod_v

constexpr

Definition at line 113 of file experimental/type_traits.

## is_pointer_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_pointer_v

constexpr

Definition at line 65 of file experimental/type_traits.

## is_polymorphic_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_polymorphic_v

constexpr

Definition at line 119 of file experimental/type_traits.

## is_reference_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_reference_v

constexpr

Definition at line 87 of file experimental/type_traits.

## is_rvalue_reference_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_rvalue_reference_v

constexpr

Definition at line 69 of file experimental/type_traits.

## is_same_v

template<typename _Tp , typename _Up >

constexpr bool std::experimental::fundamentals_v1::is_same_v

constexpr

Definition at line 207 of file experimental/type_traits.

## is_scalar_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_scalar_v

constexpr

Definition at line 95 of file experimental/type_traits.

## is_signed_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_signed_v

constexpr

Definition at line 125 of file experimental/type_traits.

## is_standard_layout_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_standard_layout_v

constexpr

Definition at line 111 of file experimental/type_traits.

## is_trivial_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_trivial_v

constexpr

Definition at line 107 of file experimental/type_traits.

## is_trivially_assignable_v

template<typename _Tp , typename _Up >

constexpr bool std::experimental::fundamentals_v1::is_trivially_assignable_v

constexpr

Definition at line 158 of file experimental/type_traits.

## is_trivially_constructible_v

template<typename _Tp , typename... _Args>

constexpr bool std::experimental::fundamentals_v1::is_trivially_constructible_v

constexpr

Definition at line 146 of file experimental/type_traits.

## is_trivially_copy_assignable_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_trivially_copy_assignable_v

constexpr

Definition at line 161 of file experimental/type_traits.

## is_trivially_copy_constructible_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_trivially_copy_constructible_v

constexpr

Definition at line 152 of file experimental/type_traits.

## is_trivially_copyable_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_trivially_copyable_v

constexpr

Definition at line 109 of file experimental/type_traits.

## is_trivially_default_constructible_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_trivially_default_constructible_v

constexpr

Definition at line 149 of file experimental/type_traits.

## is_trivially_destructible_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_trivially_destructible_v

constexpr

Definition at line 167 of file experimental/type_traits.

## is_trivially_move_assignable_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_trivially_move_assignable_v

constexpr

Definition at line 164 of file experimental/type_traits.

## is_trivially_move_constructible_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_trivially_move_constructible_v

constexpr

Definition at line 155 of file experimental/type_traits.

## is_union_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_union_v

constexpr

Definition at line 79 of file experimental/type_traits.

## is_unsigned_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_unsigned_v

constexpr

Definition at line 127 of file experimental/type_traits.

## is_void_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_void_v

constexpr

Definition at line 55 of file experimental/type_traits.

## is_volatile_v

template<typename _Tp >

constexpr bool std::experimental::fundamentals_v1::is_volatile_v

constexpr

Definition at line 105 of file experimental/type_traits.

## negation_v

template<typename _Pp >

constexpr bool std::experimental::fundamentals_v2::negation_v

constexpr

Definition at line 295 of file experimental/type_traits.

## rank_v

template<typename _Tp >

constexpr size_t std::experimental::fundamentals_v1::rank_v

constexpr

Definition at line 201 of file experimental/type_traits.