Ali*_*jas 4 c++ templates friend-class
是否有可能成为一个类的朋友,一个类模板的所有可能的变体?
只是为了澄清,例如,这样的事情:
class A
{ friend template B; } // syntactic error yeah
Run Code Online (Sandbox Code Playgroud)
因此,任何B<X>变体都可以操纵A.
A是一个小而简单的类,有很多操作其属性的朋友。只有其中一个需要是模板。我知道我可以这样做:
template <class T>
class A
{ friend class B<T>; }
Run Code Online (Sandbox Code Playgroud)
但是所以我必须在所有其他朋友中更改我的代码,我想避免它。
你可以像这样定义一个朋友模板类:
class A{
template<typename T>
friend class B;
};
Run Code Online (Sandbox Code Playgroud)
这将使 .class B的朋友的每个专业化class A。我有一个类似的问题,但目标相反:限制一些专业化:匹配参数的朋友模板函数实例