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