如何確定成員泛型函數的返回類型?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