![](/img/trans.png)
[英]How to set Variadic CRTP base classes to be friend's of the derived class
[英]How to make parameterized Base a friend of Derived in CRTP?
我想在參數化Base上實現CRTP,並讓Base成為Derived的朋友:
template <template <typename> class Derived, class T>
class Base;
template <class T>
class Derived : public Base<Derived, T>
{
friend class Base<Derived, T>;
};
我在VS2012上出現編譯錯誤,並顯示以下消息:
error C3200: 'Derived<T>' : invalid template argument for template parameter 'Derived', expected a class template
謝謝你的幫助。
嘗試這個:
friend class Base<::Derived, T>;
如果這不起作用,則您的編譯器不支持這種形式的友情聲明(應該,但是我知道什么),並且您必須通過將友誼擴展到所有基本實例來解決。
template <template <typename> class D, class BT>
friend class Base;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.