template < typename T >
struct test
{
template < typename U >
friend struct test<U>;
};
int main() {}
这是完全有效的代码,不是吗?我问,因为MSVC ++ 2010无法编译它。虽然模板不是第一次使MS编译器混淆了。据我所知,从书籍,网站等方面来看,它应该有效。
答案 0 :(得分:4)
正确的语法是:
template < typename T >
struct test
{
template < typename U >
friend struct test; // no <U>
};
int main() {}