Go to the documentation of this file.00001
00002
00003
00004 #ifndef UTILMM_UTILS_ARG_TRAITS_HEADER
00005 # define UTILMM_UTILS_ARG_TRAITS_HEADER
00006
00007 #include "boost/type_traits.hpp"
00008 #include "boost/mpl/if.hpp"
00009
00010 namespace utilmm {
00011
00025 template<typename Ty>
00026 struct arg_traits {
00027 private:
00028 typedef typename boost::remove_cv<Ty>::type real_type;
00029
00030 typedef typename boost::mpl::if_c< boost::is_pod<real_type>::value,
00031 real_type,
00032 real_type const &>::type computed_type;
00033 public:
00038 typedef computed_type type;
00039
00040 };
00041
00042 }
00043
00044 #endif // UTILMM_UTILS_ARG_TRAITS_HEADER
00045