Re[5]: Шаблонная функция член класса
От: wander  
Дата: 05.09.15 19:59
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Здравствуйте, wander, Вы писали:


W>>Как это на осилил!!?

_NN>Я тестировал на ideone.com: https://ideone.com/i3JFpY

Посмотрел на его ошибки:

prog.cpp:25:32: error: 'type' in 'struct return_type<A::X<T> >' does not name a type
typename return_type<A::X<T>>::type A::x()
^
prog.cpp:25:37: error: prototype for 'int A::x()' does not match any in class 'A'
typename return_type<A::X<T>>::type A::x()
^
prog.cpp:21:10: error: candidate is: template<class T> void A::x()
X<T> x;

Что-то у меня большое подозрение, что он лажает.
A::X<T> — это void(), void() — это тип функции. Шаблон return_type выделяет тип void из типа void().
А тут, он получается не смог это сделать. Хотя, если посмотреть какой тип имеет X<T>, то явно показывает, что void(). Непонятно!

_NN>Спасибо за еще один ресурс онлайн компилятора.



UPD:
Починил пример, через указатель на функцию:
https://ideone.com/UUKe0L
Отредактировано 05.09.2015 20:13 wander . Предыдущая версия . Еще …
Отредактировано 05.09.2015 20:13 wander . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.