5
考慮下面的C++代碼:克++錯誤:實例(模板類的朋友)後專業化
template <class T>
class Singleton {};
class ConcreteSingleton : public Singleton<ConcreteSingleton> {
template <class T>
friend class Singleton;
};
int main() {}
Singleton
應爲朋友ConcreteSingleton
:
它與Microsoft的Visual C++編譯器。但是,我不能用g ++ 4.8.4編譯它。錯誤是:
error: specialization of ‘Singleton<ConcreteSingleton>’ after instantiation template <class T> friend class Singleton;
有什麼辦法解決它嗎?
哦,它似乎是[這個gcc bug](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52625)。 – sergej
在Xcode(蘋果LLVM 7.0與C++ 14)中工作正常 –
無法在g ++ 5.2.0上編譯。在叮噹中工作。 – user2079303