模板自我友谊

时间:2010-07-22 20:53:07

标签: c++ visual-studio

template < typename T >
struct test
{
  template < typename U >
  friend struct test<U>;
};

int main() {}

这是完全有效的代码,不是吗?我问,因为MSVC ++ 2010无法编译它。虽然模板不是第一次使MS编译器混淆了。据我所知,从书籍,网站等方面来看,它应该有效。

1 个答案:

答案 0 :(得分:4)

正确的语法是:

template < typename T >
struct test
{
  template < typename U >
  friend struct test; // no <U>
};

int main() {}