考虑以下代码:
class A {
class B {};
template <typename T>
friend class C;
};
template <typename T>
class C : A::B {};
int main() { C<int> c; }
它可以使用 GCC 和 Clang 正常编译,但 Visual C++ 2010 会出现错误:
test.cc(11) : error C2248: 'A::B' : cannot access private class declared in class 'A'
它是 Visual C++ 中的错误还是我遗漏了什么?