19 #ifndef INCLUDE_RCF_TYPETRAITS_HPP
20 #define INCLUDE_RCF_TYPETRAITS_HPP
22 #include <boost/type_traits.hpp>
23 #include <boost/version.hpp>
25 #if BOOST_VERSION < 106000
27 #include <boost/mpl/bool_fwd.hpp>
29 typedef boost::mpl::true_ TrueType;
30 typedef boost::mpl::false_ FalseType;
36 typedef boost::true_type TrueType;
37 typedef boost::false_type FalseType;
48 struct IsFundamental :
public boost::is_fundamental<T>
52 struct IsConst :
public boost::is_const<T>
56 struct IsPointer :
public boost::is_pointer<T>
60 struct IsReference :
public boost::is_reference<T>
64 struct RemovePointer :
public boost::remove_pointer<T>
68 struct RemoveReference :
public boost::remove_reference<T>
72 struct RemoveCv :
public boost::remove_cv<T>
87 struct IsOut :
public RCF::FalseType
92 struct RemoveOut< Out<T> >
98 struct IsOut< Out<T> >
100 typedef boost::mpl::true_ type;
101 enum { value = type::value };
108 template<
typename T>
struct GetIndirection;
112 #endif // ! INCLUDE_RCF_TYPETRAITS_HPP