次のコードは、Visual C++ 2010 では正常にコンパイルされますが、Android NDK r8b の GCC 4.6 ではコンパイルされません。
template<typename A>
struct foo
{
template<typename B>
B method()
{
return B();
}
};
template<typename A>
struct bar
{
bar()
{
f_.method<int>(); // error here
}
private:
foo<A> f_;
};
GCCが与えるエラーは
error : expected primary-expression before 'int'
error : expected ';' before 'int'
マークされた行のために。私の人生では、何が悪いのか理解できません。