class F { public: template<class T> void foo(){}; };
template<class T, class Q> class B { T t; public: virtual void boo() { t.foo<Q>(); } };
int main() { return 0; }
Вот этот код не компилируется, из-за, якобы, синтаксической ошибки. Тем не менее, если такой-же вызов t.foo<Q>() будет стоять, например, в main(), но не в B::boo(), то всё скомпилируется.
Так вот, сабж...