C ++模板确定函数返回类型

时间:2010-07-08 17:28:04

标签: c++ templates

如何确定成员泛型函数的返回类型?

    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,但就我的目的而言,它缺乏专业化(如果我理解正确,返回类型必须是专门的)。 提升实施效果会非常好。

2 个答案:

答案 0 :(得分:4)

GCC的非标准typeof运算符可以执行此操作,Boost.TypeOf可以执行此操作。

答案 1 :(得分:3)

如果你至少使用VS2010或GCC 4.3,你可以使用C ++ 0x new keyword decltype