File indexing completed on 2025-01-18 09:53:12
0001
0002
0003
0004
0005
0006 #ifndef BOOST_TYPEOF_DECLTYPE_HPP_INCLUDED
0007 # define BOOST_TYPEOF_DECLTYPE_HPP_INCLUDED
0008
0009 #include <type_traits>
0010
0011 namespace boost { namespace type_of {
0012 template<typename T>
0013 using remove_cv_ref_t = typename std::remove_cv<typename std::remove_reference<T>::type>::type;
0014 }}
0015
0016 #define BOOST_TYPEOF(expr) boost::type_of::remove_cv_ref_t<decltype(expr)>
0017 #define BOOST_TYPEOF_TPL BOOST_TYPEOF
0018
0019 #define BOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \
0020 struct name {\
0021 typedef BOOST_TYPEOF_TPL(expr) type;\
0022 };
0023
0024 #define BOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
0025 struct name {\
0026 typedef BOOST_TYPEOF(expr) type;\
0027 };
0028
0029 #define BOOST_TYPEOF_REGISTER_TYPE(x)
0030 #define BOOST_TYPEOF_REGISTER_TEMPLATE(x, params)
0031
0032 #endif
0033