如何确定成员泛型函数的返回类型?
template<class E>
struct result<E> {
// E has member function data(), I need to know its return type
typedef typename &E::data type;
};
是否可以通用方式进行?
我知道有boost:: result_of
,但就我的目的而言,它缺乏专业化(如果我理解正确,返回类型必须是专门的)。
提升实施效果会非常好。
答案 0 :(得分:4)
GCC的非标准typeof运算符可以执行此操作,Boost.TypeOf可以执行此操作。
答案 1 :(得分:3)
如果你至少使用VS2010或GCC 4.3,你可以使用C ++ 0x new keyword decltype
。