考虑以下 C++ 代码:
template <class T>
class Singleton {};
class ConcreteSingleton : public Singleton<ConcreteSingleton> {
template <class T>
friend class Singleton;
};
int main() {}
Singleton
应该是以下的朋友ConcreteSingleton
:
它适用于微软的可视化 C++ 编译器。但是,我不能用 g++ 4.8.4 编译它。错误是:
error: specialization of ‘Singleton<ConcreteSingleton>’ after instantiation template <class T> friend class Singleton;
有什么办法可以解决吗?