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 DEAL_II_NAMESPACE_CLOSE
41 DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
42 #include <boost/type_traits.hpp> 43 #include <boost/version.hpp> 44 #if BOOST_VERSION<105600 45 #include <boost/utility/enable_if.hpp> 47 #include <boost/core/enable_if.hpp> 51 DEAL_II_NAMESPACE_OPEN
54 using boost::is_fundamental;
56 using boost::is_pointer;
59 template <
bool B,
class T =
void>
60 struct enable_if :
public boost::enable_if_c<B, T>
67 struct is_standard_layout
69 static const bool value = boost::is_pod<T>::value;
75 static const bool value = boost::has_trivial_copy<T>::value &&
76 boost::has_trivial_assign<T>::value &&
77 boost::has_trivial_constructor<T>::value &&
78 boost::has_trivial_destructor<T>::value;
81 DEAL_II_NAMESPACE_CLOSE
87 DEAL_II_NAMESPACE_OPEN
89 DEAL_II_NAMESPACE_CLOSE