16 #ifndef dealii__std_cxx11_type_traits_h 17 #define dealii__std_cxx11_type_traits_h 20 #include <deal.II/base/config.h> 22 #ifdef DEAL_II_WITH_CXX11 24 # include <type_traits> 25 DEAL_II_NAMESPACE_OPEN
30 using std::is_fundamental;
32 using std::is_pointer;
33 using std::is_standard_layout;
34 using std::is_trivial;
37 using std::false_type;
39 DEAL_II_NAMESPACE_CLOSE
43 DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
44 #include <boost/type_traits.hpp> 45 #include <boost/version.hpp> 46 #if BOOST_VERSION<105600 47 #include <boost/utility/enable_if.hpp> 49 #include <boost/core/enable_if.hpp> 51 DEAL_II_ENABLE_EXTRA_DIAGNOSTICS
53 DEAL_II_NAMESPACE_OPEN
56 using boost::is_fundamental;
58 using boost::is_pointer;
61 template <
bool B,
class T =
void>
62 struct enable_if :
public boost::enable_if_c<B, T>
69 struct is_standard_layout
71 static const bool value = boost::is_pod<T>::value;
77 static const bool value = boost::has_trivial_copy<T>::value &&
78 boost::has_trivial_assign<T>::value &&
79 boost::has_trivial_constructor<T>::value &&
80 boost::has_trivial_destructor<T>::value;
83 using boost::true_type;
84 using boost::false_type;
86 DEAL_II_NAMESPACE_CLOSE
92 DEAL_II_NAMESPACE_OPEN
94 DEAL_II_NAMESPACE_CLOSE