我遇到以下情况:
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>
的朋友,但我有编译错误。这可能吗?
答案 0 :(得分:7)
你的专业化中有一个错字:
template<typename T>
class Foo<T, 0>
{ // ^^^ <= add this
friend class Foo<T, 1>;
};