libstdc++
type_traits File Reference

Go to the source code of this file.

Classes

struct  std::__is_nullptr_t< _Tp >
struct  std::add_const< _Tp >
struct  std::add_cv< _Tp >
struct  std::add_lvalue_reference< _Tp >
struct  std::add_pointer< _Tp >
struct  std::add_rvalue_reference< _Tp >
struct  std::add_volatile< _Tp >
struct  std::aligned_storage< _Len, _Align >
struct  std::aligned_union< _Len, _Types >
struct  std::alignment_of< _Tp >
struct  std::conditional< _Cond, _Iftrue, _Iffalse >
class  std::decay< _Tp >
struct  std::enable_if< bool, _Tp >
struct  std::extent< typename, _Uint >
struct  std::has_unique_object_representations< _Tp >
struct  std::has_virtual_destructor< _Tp >
struct  std::integral_constant< _Tp, __v >
struct  std::invoke_result< _Functor, _ArgTypes >
struct  std::is_abstract< _Tp >
struct  std::is_aggregate< _Tp >
struct  std::is_arithmetic< _Tp >
struct  std::is_array< typename >
struct  std::is_assignable< _Tp, _Up >
struct  std::is_base_of< _Base, _Derived >
struct  std::is_bounded_array< _Tp >
struct  std::is_class< _Tp >
struct  std::is_compound< _Tp >
struct  std::is_const< typename >
struct  std::is_constructible< _Tp, _Args >
struct  std::is_convertible< _From, _To >
struct  std::is_copy_assignable< _Tp >
struct  std::is_copy_constructible< _Tp >
struct  std::is_default_constructible< _Tp >
struct  std::is_destructible< _Tp >
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< _Tp >
struct  std::is_fundamental< _Tp >
struct  std::is_integral< _Tp >
struct  std::is_invocable< _Fn, _ArgTypes >
struct  std::is_invocable_r< _Ret, _Fn, _ArgTypes >
struct  std::is_layout_compatible< _Tp, _Up >
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_move_assignable< _Tp >
struct  std::is_move_constructible< _Tp >
struct  std::is_nothrow_assignable< _Tp, _Up >
struct  std::is_nothrow_constructible< _Tp, _Args >
struct  std::is_nothrow_convertible< _From, _To >
struct  std::is_nothrow_copy_assignable< _Tp >
struct  std::is_nothrow_copy_constructible< _Tp >
struct  std::is_nothrow_default_constructible< _Tp >
struct  std::is_nothrow_destructible< _Tp >
struct  std::is_nothrow_invocable< _Fn, _ArgTypes >
struct  std::is_nothrow_invocable_r< _Ret, _Fn, _ArgTypes >
struct  std::is_nothrow_move_assignable< _Tp >
struct  std::is_nothrow_move_constructible< _Tp >
struct  std::is_nothrow_swappable< _Tp >
struct  std::is_nothrow_swappable_with< _Tp, _Up >
struct  std::is_null_pointer< _Tp >
struct  std::is_object< _Tp >
struct  std::is_pod< _Tp >
struct  std::is_pointer< _Tp >
struct  std::is_pointer_interconvertible_base_of< _Base, _Derived >
struct  std::is_polymorphic< _Tp >
struct  std::is_reference< _Tp >
struct  std::is_rvalue_reference< typename >
struct  std::is_same< _Tp, _Up >
struct  std::is_scalar< _Tp >
struct  std::is_signed< _Tp >
struct  std::is_standard_layout< _Tp >
struct  std::is_swappable< _Tp >
struct  std::is_swappable_with< _Tp, _Up >
struct  std::is_trivial< _Tp >
struct  std::is_trivially_assignable< _Tp, _Up >
struct  std::is_trivially_constructible< _Tp, _Args >
struct  std::is_trivially_copy_assignable< _Tp >
struct  std::is_trivially_copy_constructible< _Tp >
struct  std::is_trivially_copyable< _Tp >
struct  std::is_trivially_default_constructible< _Tp >
struct  std::is_trivially_destructible< _Tp >
struct  std::is_trivially_move_assignable< _Tp >
struct  std::is_trivially_move_constructible< _Tp >
struct  std::is_unbounded_array< _Tp >
struct  std::is_union< _Tp >
struct  std::is_unsigned< _Tp >
struct  std::is_void< _Tp >
struct  std::is_volatile< typename >
struct  std::make_signed< _Tp >
struct  std::make_unsigned< _Tp >
struct  std::rank< typename >
struct  std::remove_all_extents< _Tp >
struct  std::remove_const< _Tp >
struct  std::remove_cv< _Tp >
struct  std::remove_extent< _Tp >
struct  std::remove_pointer< _Tp >
struct  std::remove_reference< _Tp >
struct  std::remove_volatile< _Tp >
struct  std::underlying_type< _Tp >
struct  std::unwrap_ref_decay< _Tp >
struct  std::unwrap_reference< _Tp >

Namespaces

namespace  std

Macros

#define __cpp_lib_bool_constant
#define __cpp_lib_bounded_array_traits
#define __cpp_lib_has_unique_object_representations
#define __cpp_lib_integral_constant_callable
#define __cpp_lib_is_aggregate
#define __cpp_lib_is_constant_evaluated
#define __cpp_lib_is_final
#define __cpp_lib_is_invocable
#define __cpp_lib_is_layout_compatible
#define __cpp_lib_is_nothrow_convertible
#define __cpp_lib_is_null_pointer
#define __cpp_lib_is_pointer_interconvertible
#define __cpp_lib_is_swappable
#define __cpp_lib_logical_traits
#define __cpp_lib_result_of_sfinae
#define __cpp_lib_transformation_trait_aliases
#define __cpp_lib_type_trait_variable_templates
#define __cpp_lib_unwrap_ref
#define __cpp_lib_void_t
#define _GLIBCXX_TYPE_TRAITS

Typedefs

template<bool _Cond, typename _If, typename _Else>
using std::__conditional_t
template<typename _ToElementType, typename _FromElementType>
using std::__is_array_convertible
template<typename _Tp, typename _Up>
using std::__is_nothrow_assignable_impl
template<typename _Tp>
using std::add_const_t
template<typename _Tp>
using std::add_cv_t
template<typename _Tp>
using std::add_lvalue_reference_t
template<typename _Tp>
using std::add_pointer_t
template<typename _Tp>
using std::add_rvalue_reference_t
template<typename _Tp>
using std::add_volatile_t
template<size_t _Len, size_t _Align = __alignof__(typename __aligned_storage_msa<_Len>::__type)>
using std::aligned_storage_t
template<size_t _Len, typename... _Types>
using std::aligned_union_t
template<bool __v>
using std::bool_constant
template<typename... _Tp>
using std::common_reference_t
template<typename... _Tp>
using std::common_type_t
template<bool _Cond, typename _Iftrue, typename _Iffalse>
using std::conditional_t
template<typename _Tp>
using std::decay_t
template<bool _Cond, typename _Tp = void>
using std::enable_if_t
using std::false_type
template<typename _Fn, typename... _Args>
using std::invoke_result_t
template<typename _Tp>
using std::make_signed_t
template<typename _Tp>
using std::make_unsigned_t
template<typename _Tp>
using std::remove_all_extents_t
template<typename _Tp>
using std::remove_const_t
template<typename _Tp>
using std::remove_cv_t
template<typename _Tp>
using std::remove_extent_t
template<typename _Tp>
using std::remove_pointer_t
template<typename _Tp>
using std::remove_reference_t
template<typename _Tp>
using std::remove_volatile_t
template<typename _Tp>
using std::result_of_t
using std::true_type
template<typename _Tp>
using std::underlying_type_t
template<typename...>
using std::void_t
template<typename _Tp>
using std::unwrap_reference_t
template<typename _Tp>
using std::unwrap_ref_decay_t

Functions

template<typename _Tp>
auto std::declval () noexcept -> decltype(__declval< _Tp >(0))
constexpr bool std::is_constant_evaluated () noexcept
template<typename _S1, typename _S2, typename _M1, typename _M2>
constexpr bool std::is_corresponding_member (_M1 _S1::*__m1, _M2 _S2::*__m2) noexcept
template<typename _Tp, typename _Mem>
constexpr bool std::is_pointer_interconvertible_with_class (_Mem _Tp::*__mp) noexcept
template<typename _Tp>
constexpr _Require< __not_< __is_tuple_like< _Tp > >, is_move_constructible< _Tp >, is_move_assignable< _Tp > > std::swap (_Tp &, _Tp &) noexcept(__and_< is_nothrow_move_constructible< _Tp >, is_nothrow_move_assignable< _Tp > >::value)
template<typename _Tp, size_t _Nm>
constexpr __enable_if_t< __is_swappable< _Tp >::value > std::swap (_Tp(&__a)[_Nm], _Tp(&__b)[_Nm]) noexcept(__is_nothrow_swappable< _Tp >::value)

Variables

template<size_t _Len, typename... _Types>
const size_t std::aligned_union< _Len, _Types... >::alignment_value
template<typename _Tp>
constexpr bool std::has_unique_object_representations_v
template<typename _Tp>
constexpr bool std::is_aggregate_v
template<typename _Tp>
constexpr bool std::is_bounded_array_v
template<typename _Tp, typename _Up>
constexpr bool std::is_layout_compatible_v
template<typename _From, typename _To>
constexpr bool std::is_nothrow_convertible_v
template<typename _Tp>
constexpr bool std::is_nothrow_swappable_v
template<typename _Tp, typename _Up>
constexpr bool std::is_nothrow_swappable_with_v
template<typename _Base, typename _Derived>
constexpr bool std::is_pointer_interconvertible_base_of_v
template<typename _Tp>
constexpr bool std::is_swappable_v
template<typename _Tp, typename _Up>
constexpr bool std::is_swappable_with_v
template<typename _Tp>
constexpr bool std::is_unbounded_array_v
template<typename... _Bn>
constexpr bool std::conjunction_v
template<typename... _Bn>
constexpr bool std::disjunction_v
template<typename _Pp>
constexpr bool std::negation_v
template<typename _Tp>
constexpr size_t std::alignment_of_v
template<typename _Tp, unsigned _Idx = 0>
constexpr size_t std::extent_v
template<typename _Tp>
constexpr bool std::has_virtual_destructor_v
template<typename _Tp>
constexpr bool std::is_abstract_v
template<typename _Tp>
constexpr bool std::is_arithmetic_v
template<typename _Tp>
constexpr bool std::is_array_v
template<typename _Tp, typename _Up>
constexpr bool std::is_assignable_v
template<typename _Base, typename _Derived>
constexpr bool std::is_base_of_v
template<typename _Tp>
constexpr bool std::is_class_v
template<typename _Tp>
constexpr bool std::is_compound_v
template<typename _Tp>
constexpr bool std::is_const_v
template<typename _Tp, typename... _Args>
constexpr bool std::is_constructible_v
template<typename _From, typename _To>
constexpr bool std::is_convertible_v
template<typename _Tp>
constexpr bool std::is_copy_assignable_v
template<typename _Tp>
constexpr bool std::is_copy_constructible_v
template<typename _Tp>
constexpr bool std::is_default_constructible_v
template<typename _Tp>
constexpr bool std::is_destructible_v
template<typename _Tp>
constexpr bool std::is_empty_v
template<typename _Tp>
constexpr bool std::is_enum_v
template<typename _Tp>
constexpr bool std::is_final_v
template<typename _Tp>
constexpr bool std::is_floating_point_v
template<typename _Tp>
constexpr bool std::is_function_v
template<typename _Tp>
constexpr bool std::is_fundamental_v
template<typename _Tp>
constexpr bool std::is_integral_v
template<typename _Ret, typename _Fn, typename... _Args>
constexpr bool std::is_invocable_r_v
template<typename _Fn, typename... _Args>
constexpr bool std::is_invocable_v
template<typename _Tp>
constexpr bool std::is_literal_type_v
template<typename _Tp>
constexpr bool std::is_lvalue_reference_v
template<typename _Tp>
constexpr bool std::is_member_function_pointer_v
template<typename _Tp>
constexpr bool std::is_member_object_pointer_v
template<typename _Tp>
constexpr bool std::is_member_pointer_v
template<typename _Tp>
constexpr bool std::is_move_assignable_v
template<typename _Tp>
constexpr bool std::is_move_constructible_v
template<typename _Tp, typename _Up>
constexpr bool std::is_nothrow_assignable_v
template<typename _Tp, typename... _Args>
constexpr bool std::is_nothrow_constructible_v
template<typename _Tp>
constexpr bool std::is_nothrow_copy_assignable_v
template<typename _Tp>
constexpr bool std::is_nothrow_copy_constructible_v
template<typename _Tp>
constexpr bool std::is_nothrow_default_constructible_v
template<typename _Tp>
constexpr bool std::is_nothrow_destructible_v
template<typename _Ret, typename _Fn, typename... _Args>
constexpr bool std::is_nothrow_invocable_r_v
template<typename _Fn, typename... _Args>
constexpr bool std::is_nothrow_invocable_v
template<typename _Tp>
constexpr bool std::is_nothrow_move_assignable_v
template<typename _Tp>
constexpr bool std::is_nothrow_move_constructible_v
template<typename _Tp>
constexpr bool std::is_null_pointer_v
template<typename _Tp>
constexpr bool std::is_object_v
template<typename _Tp>
constexpr bool std::is_pod_v
template<typename _Tp>
constexpr bool std::is_pointer_v
template<typename _Tp>
constexpr bool std::is_polymorphic_v
template<typename _Tp>
constexpr bool std::is_reference_v
template<typename _Tp>
constexpr bool std::is_rvalue_reference_v
template<typename _Tp, typename _Up>
constexpr bool std::is_same_v
template<typename _Tp>
constexpr bool std::is_scalar_v
template<typename _Tp>
constexpr bool std::is_signed_v
template<typename _Tp>
constexpr bool std::is_standard_layout_v
template<typename _Tp>
constexpr bool std::is_trivial_v
template<typename _Tp, typename _Up>
constexpr bool std::is_trivially_assignable_v
template<typename _Tp, typename... _Args>
constexpr bool std::is_trivially_constructible_v
template<typename _Tp>
constexpr bool std::is_trivially_copy_assignable_v
template<typename _Tp>
constexpr bool std::is_trivially_copy_constructible_v
template<typename _Tp>
constexpr bool std::is_trivially_copyable_v
template<typename _Tp>
constexpr bool std::is_trivially_default_constructible_v
template<typename _Tp>
constexpr bool std::is_trivially_destructible_v
template<typename _Tp>
constexpr bool std::is_trivially_move_assignable_v
template<typename _Tp>
constexpr bool std::is_trivially_move_constructible_v
template<typename _Tp>
constexpr bool std::is_union_v
template<typename _Tp>
constexpr bool std::is_unsigned_v
template<typename _Tp>
constexpr bool std::is_void_v
template<typename _Tp>
constexpr bool std::is_volatile_v
template<typename _Tp>
constexpr size_t std::rank_v
#define __cpp_lib_remove_cvref
template<typename _Tp>
using std::remove_cvref_t
#define __cpp_lib_type_identity
template<typename _Tp>
using std::type_identity_t

Detailed Description

This is a Standard C++ Library header.

Definition in file type_traits.

Macro Definition Documentation

◆ __cpp_lib_integral_constant_callable

#define __cpp_lib_integral_constant_callable

Definition at line 70 of file type_traits.

◆ _GLIBCXX_TYPE_TRAITS

#define _GLIBCXX_TYPE_TRAITS

Definition at line 30 of file type_traits.