如何确定成员泛型函数的返回类型?C++模板确定函数返回类型
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
但我的目的它缺乏专业化(如果我理解正确,返回类型必须专门化)。 助推实施会很好。
也许,你根本不需要那种魔法。尝试使用'E :: value_type *'或'E :: pointer'。如果它有'data()'它可能是一个容器并提供公共typedef。 – 2010-07-08 18:55:20
@Johannes谢谢你。实际上是在试图写包装来透明地与ublas和其他东西合作。不幸的是,ublas data()接口有点不标准(array_type),所以我最终分开进行了专门化。 – Anycorn 2010-07-08 20:14:27