Как я могу пойти об определении типа возврата членской родовой функции?
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
но в моих целях это испытывает недостаток в специализациях (если бы я понял правильно, возвратитесь, то тип должен быть специализирован). внедрение BOOST было бы большим.
Нестандартный оператор GCC typeof может это сделать, как и Boost.TypeOf .
Если вы используете VS2010 или GCC 4.3, по крайней мере, вы можете использовать новое ключевое слово C++0x decltype
.