模板类专业化和朋友类

时间:2015-02-04 14:52:01

标签: c++ templates c++11 friend

我遇到以下情况:

template<typename T, int N>
class Foo
{
};

// specialization for 0
template<typename T>
class Foo<0>
{
   friend class Foo<T, 1>;
};

也就是说,我需要Foo<T, 1>Foo<T, 0>的朋友,但我有编译错误。这可能吗?

1 个答案:

答案 0 :(得分:7)

你的专业化中有一个错字:

template<typename T>
class Foo<T, 0>
{     //  ^^^ <= add this
   friend class Foo<T, 1>;
};