1 // (C) Copyright Beman Dawes 2009
3 // Use, modification and distribution are subject to the
4 // Boost Software License, Version 1.0. (See accompanying file
5 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 // See http://www.boost.org/libs/config for more information.
9 // MACRO: BOOST_NO_CXX11_HDR_TYPE_TRAITS
10 // TITLE: C++0x header <type_traits> unavailable
11 // DESCRIPTION: The standard library does not supply C++0x header <type_traits>
13 #include <type_traits>
15 namespace boost_no_cxx11_hdr_type_traits {
19 using std::integral_constant;
21 using std::false_type;
23 using std::is_integral;
24 using std::is_floating_point;
26 using std::is_pointer;
27 using std::is_lvalue_reference;
28 using std::is_rvalue_reference;
29 using std::is_member_object_pointer;
30 using std::is_member_function_pointer;
34 using std::is_function;
35 using std::is_reference;
36 using std::is_arithmetic;
37 using std::is_fundamental;
40 using std::is_compound;
41 using std::is_member_pointer;
43 using std::is_volatile;
44 using std::is_trivial;
45 using std::is_trivially_copyable;
46 using std::is_standard_layout;
47 #if !((__cplusplus > 201703) || (defined(_MSVC_LANG) && (_MSVC_LANG > 201703)))
48 // deprecated in C++20 (including preview editions):
51 #if !((__cplusplus > 201700) || (defined(_MSVC_LANG) && (_MSVC_LANG > 201700)))
52 // deprecated in C++ 17:
53 using std::is_literal_type;
57 using std::is_polymorphic;
58 using std::is_abstract;
59 using std::is_constructible;
60 using std::is_nothrow_constructible;
61 using std::is_default_constructible;
62 using std::is_copy_constructible;
63 using std::is_copy_assignable;
64 using std::is_move_constructible;
65 using std::is_move_assignable;
66 using std::is_destructible;
67 using std::is_trivially_default_constructible;
68 using std::is_trivially_copy_constructible;
69 using std::is_trivially_move_constructible;
70 using std::is_trivially_copy_assignable;
71 using std::is_trivially_move_assignable;
72 using std::is_trivially_destructible;
73 using std::is_nothrow_default_constructible;
74 using std::is_nothrow_copy_constructible;
75 using std::is_nothrow_move_constructible;
76 using std::is_nothrow_copy_assignable;
77 using std::is_nothrow_move_assignable;
78 using std::has_virtual_destructor;
80 using std::is_unsigned;
81 using std::alignment_of;
85 using std::is_base_of;
86 using std::is_convertible;
87 using std::remove_const;
88 using std::remove_volatile;
91 using std::add_volatile;
93 using std::remove_reference;
94 using std::add_lvalue_reference;
95 using std::add_rvalue_reference;
96 using std::make_signed;
97 using std::make_unsigned;
98 using std::remove_extent;
99 using std::remove_all_extents;
100 using std::remove_pointer;
101 using std::add_pointer;
102 using std::aligned_storage;
103 using std::aligned_union;
105 using std::enable_if;
106 using std::conditional;
107 using std::common_type;
108 using std::underlying_type;