c++ - typedef return type of template parameter's member function -
i'm trying typedef
return type of member function of template argument. this:
template <typename t> class dosomething{ typedef return_type (t::*x)(void)const data_type; data_type x1; };
in case, want typedef
return type of const member function of template parameter, called x
. in example return_type
place holder, show want. won't compile.
edit: reason want way is: want operations on x1 or other variable of type data_type
in example, same precision return type of x() member function. if x() returns float template ops in floats , on.
i found one answer on so. don't want use c++11 features. no decltype
, no auto
. work c++03 compiler.
this seems work (even when boost typeof forced use long way rather c++11 or compiler-specific feature):
#include <boost/utility/declval.hpp> #include <boost/typeof/typeof.hpp> template <typename t> class dosomething { typedef boost_typeof_tpl(boost::declval<t const&>().x()) data_type; data_type x1; };
but resulting type cannot involve class, struct, union, or enum types.
Comments
Post a Comment