libstdc++
type_traits File Reference

Go to the source code of this file.

Classes

struct  std::__add_pointer_helper< _Tp, bool >
 
struct  std::__detector< _Default, _AlwaysVoid, _Op, _Args >
 
struct  std::__detector< _Default, __void_t< _Op< _Args... > >, _Op, _Args... >
 
struct  std::__is_nullptr_t< _Tp >
 
struct  std::__is_trivially_copy_assignable_impl< _Tp, bool >
 
struct  std::__is_trivially_copy_constructible_impl< _Tp, bool >
 
struct  std::__is_trivially_move_assignable_impl< _Tp, bool >
 
struct  std::__is_trivially_move_constructible_impl< _Tp, bool >
 
struct  std::add_const< _Tp >
 
struct  std::add_cv< _Tp >
 
struct  std::add_lvalue_reference< _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::common_type< _Tp >
 
struct  std::conditional< _Cond, _Iftrue, _Iffalse >
 
struct  std::conditional< _Cond, _Iftrue, _Iffalse >
 
class  std::decay< _Tp >
 
struct  std::enable_if< bool, _Tp >
 
struct  std::extent< typename, _Uint >
 
struct  std::extent< typename, _Uint >
 
struct  std::has_virtual_destructor< _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_assignable< _Tp, _Up >
 
struct  std::is_base_of< _Base, _Derived >
 
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< typename >
 
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_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_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_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_polymorphic< _Tp >
 
struct  std::is_reference< _Tp >
 
struct  std::is_rvalue_reference< typename >
 
struct  std::is_same< typename, typename >
 
struct  std::is_scalar< _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_default_constructible< _Tp >
 
struct  std::is_trivially_destructible< _Tp >
 
struct  std::is_union< _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 >
 
class  std::reference_wrapper< _Tp >
 
struct  std::remove_all_extents< _Tp >
 
struct  std::remove_all_extents< _Tp >
 
struct  std::remove_const< _Tp >
 
struct  std::remove_cv< _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 >
 
class  std::result_of< _Signature >
 
class  std::tuple< _Elements >
 
struct  std::underlying_type< _Tp >
 

Namespaces

 std
 

Macros

#define __cpp_lib_integral_constant_callable
 
#define __cpp_lib_is_final
 
#define __cpp_lib_is_null_pointer
 
#define __cpp_lib_is_swappable
 
#define __cpp_lib_result_of_sfinae
 
#define __cpp_lib_transformation_trait_aliases
 
#define __cpp_lib_void_t
 
#define _GLIBCXX_HAS_NESTED_TYPE(_NTYPE)
 
#define _GLIBCXX_TYPE_TRAITS
 

Typedefs

template<bool __v>
using std::__bool_constant = integral_constant< bool, __v >
 
template<typename _Fn , typename... _Args>
using std::__call_is_nothrow_ = __call_is_nothrow< __invoke_result< _Fn, _Args... >, _Fn, _Args... >
 
template<typename _Default , template< typename... > class _Op, typename... _Args>
using std::__detected_or = __detector< _Default, void, _Op, _Args... >
 
template<typename _Default , template< typename... > class _Op, typename... _Args>
using std::__detected_or_t = typename __detected_or< _Default, _Op, _Args... >::type
 
template<bool _Cond, typename _Tp = void>
using std::__enable_if_t = typename enable_if< _Cond, _Tp >::type
 
template<typename... >
using std::__void_t = void
 
template<typename... _Cond>
using std::_Require = typename enable_if< __and_< _Cond... >::value >::type
 
template<typename _Tp >
using std::add_const_t = typename add_const< _Tp >::type
 
template<typename _Tp >
using std::add_cv_t = typename add_cv< _Tp >::type
 
template<typename _Tp >
using std::add_lvalue_reference_t = typename add_lvalue_reference< _Tp >::type
 
template<typename _Tp >
using std::add_pointer_t = typename add_pointer< _Tp >::type
 
template<typename _Tp >
using std::add_rvalue_reference_t = typename add_rvalue_reference< _Tp >::type
 
template<typename _Tp >
using std::add_volatile_t = typename add_volatile< _Tp >::type
 
template<size_t _Len, size_t _Align = __alignof__(typename __aligned_storage_msa<_Len>::__type)>
using std::aligned_storage_t = typename aligned_storage< _Len, _Align >::type
 
template<size_t _Len, typename... _Types>
using std::aligned_union_t = typename aligned_union< _Len, _Types... >::type
 
template<typename... _Tp>
using std::common_type_t = typename common_type< _Tp... >::type
 
template<bool _Cond, typename _Iftrue , typename _Iffalse >
using std::conditional_t = typename conditional< _Cond, _Iftrue, _Iffalse >::type
 
template<typename _Tp >
using std::decay_t = typename decay< _Tp >::type
 
template<bool _Cond, typename _Tp = void>
using std::enable_if_t = typename enable_if< _Cond, _Tp >::type
 
typedef integral_constant< bool, false > std::false_type
 
template<typename _Tp >
using std::make_signed_t = typename make_signed< _Tp >::type
 
template<typename _Tp >
using std::make_unsigned_t = typename make_unsigned< _Tp >::type
 
template<typename _Tp >
using std::remove_all_extents_t = typename remove_all_extents< _Tp >::type
 
template<typename _Tp >
using std::remove_const_t = typename remove_const< _Tp >::type
 
template<typename _Tp >
using std::remove_cv_t = typename remove_cv< _Tp >::type
 
template<typename _Tp >
using std::remove_extent_t = typename remove_extent< _Tp >::type
 
template<typename _Tp >
using std::remove_pointer_t = typename remove_pointer< _Tp >::type
 
template<typename _Tp >
using std::remove_reference_t = typename remove_reference< _Tp >::type
 
template<typename _Tp >
using std::remove_volatile_t = typename remove_volatile< _Tp >::type
 
template<typename _Tp >
using std::result_of_t = typename result_of< _Tp >::type
 
typedef integral_constant< bool, true > std::true_type
 
template<typename _Tp >
using std::underlying_type_t = typename underlying_type< _Tp >::type
 
template<typename... >
using std::void_t = void
 

Functions

template<typename _Fn , typename _Tp , typename... _Args>
constexpr bool std::__call_is_nt (__invoke_memfun_ref)
 
template<typename _Fn , typename _Tp , typename... _Args>
constexpr bool std::__call_is_nt (__invoke_memfun_deref)
 
template<typename _Fn , typename _Tp >
constexpr bool std::__call_is_nt (__invoke_memobj_ref)
 
template<typename _Fn , typename _Tp >
constexpr bool std::__call_is_nt (__invoke_memobj_deref)
 
template<typename _Fn , typename... _Args>
constexpr bool std::__call_is_nt (__invoke_other)
 
template<typename _Tp >
auto std::declval () noexcept -> decltype(__declval< _Tp >(0))
 
template<typename _Tp >
enable_if< __and_< __not_< __is_tuple_like< _Tp > >, is_move_constructible< _Tp >, is_move_assignable< _Tp > >::value >::type std::swap (_Tp &__a, _Tp &__b) noexcept(__and_< is_nothrow_move_constructible< _Tp >, is_nothrow_move_assignable< _Tp >>::value)
 
template<typename _Tp , size_t _Nm>
enable_if< __is_swappable< _Tp >::value >::type std::swap (_Tp(&__a)[_Nm], _Tp(&__b)[_Nm]) noexcept(__is_nothrow_swappable< _Tp >::value)
 

Variables

template<typename _Tp >
_GLIBCXX17_INLINE constexpr bool std::is_nothrow_swappable_v
 
template<typename _Tp , typename _Up >
_GLIBCXX17_INLINE constexpr bool std::is_nothrow_swappable_with_v
 
template<typename _Tp >
_GLIBCXX17_INLINE constexpr bool std::is_swappable_v
 
template<typename _Tp , typename _Up >
_GLIBCXX17_INLINE constexpr bool std::is_swappable_with_v
 

Detailed Description

This is a Standard C++ Library header.

Definition in file type_traits.

Macro Definition Documentation

◆ _GLIBCXX_HAS_NESTED_TYPE

#define _GLIBCXX_HAS_NESTED_TYPE (   _NTYPE)

Use SFINAE to determine if the type _Tp has a publicly-accessible member type _NTYPE.

Definition at line 2361 of file type_traits.