1//  (C) Copyright Beman Dawes 2009
2
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)
6
7//  See http://www.boost.org/libs/config for more information.
8
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>
12
13#include <type_traits>
14
15namespace boost_no_cxx11_hdr_type_traits {
16
17int test()
18{
19  using std::integral_constant;
20  using std::true_type;
21  using std::false_type;
22  using std::is_void;
23  using std::is_integral;
24  using std::is_floating_point;
25  using std::is_array;
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;
31  using std::is_enum;
32  using std::is_union;
33  using std::is_class;
34  using std::is_function;
35  using std::is_reference;
36  using std::is_arithmetic;
37  using std::is_fundamental;
38  using std::is_object;
39  using std::is_scalar;
40  using std::is_compound;
41  using std::is_member_pointer;
42  using std::is_const;
43  using std::is_volatile;
44  using std::is_trivial;
45  using std::is_trivially_copyable;
46  using std::is_standard_layout;
47  using std::is_pod;
48#if !((__cplusplus > 201700) || (defined(_MSVC_LANG) && (_MSVC_LANG > 201700)))
49  // deprecated in C++ 17:
50  using std::is_literal_type;
51  using std::result_of;
52#endif
53  using std::is_empty;
54  using std::is_polymorphic;
55  using std::is_abstract;
56  using std::is_constructible;
57  using std::is_nothrow_constructible;
58  using std::is_default_constructible;
59  using std::is_copy_constructible;
60  using std::is_copy_assignable;
61  using std::is_move_constructible;
62  using std::is_move_assignable;
63  using std::is_destructible;
64  using std::is_trivially_default_constructible;
65  using std::is_trivially_copy_constructible;
66  using std::is_trivially_move_constructible;
67  using std::is_trivially_copy_assignable;
68  using std::is_trivially_move_assignable;
69  using std::is_trivially_destructible;
70  using std::is_nothrow_default_constructible;
71  using std::is_nothrow_copy_constructible;
72  using std::is_nothrow_move_constructible;
73  using std::is_nothrow_copy_assignable;
74  using std::is_nothrow_move_assignable;
75  using std::has_virtual_destructor;
76  using std::is_signed;
77  using std::is_unsigned;
78  using std::alignment_of;
79  using std::rank;
80  using std::extent;
81  using std::is_same;
82  using std::is_base_of;
83  using std::is_convertible;
84  using std::remove_const;
85  using std::remove_volatile;
86  using std::remove_cv;
87  using std::add_const;
88  using std::add_volatile;
89  using std::add_cv;
90  using std::remove_reference;
91  using std::add_lvalue_reference;
92  using std::add_rvalue_reference;
93  using std::make_signed;
94  using std::make_unsigned;
95  using std::remove_extent;
96  using std::remove_all_extents;
97  using std::remove_pointer;
98  using std::add_pointer;
99  using std::aligned_storage;
100  using std::aligned_union;
101  using std::decay;
102  using std::enable_if;
103  using std::conditional;
104  using std::common_type;
105  using std::underlying_type;
106  return 0;
107}
108
109}
110