C++:模板可以成为 Class 的友元吗?
C++: Can a Template be friend of a Class?
是否可以与 class、class 模板的所有可能变体交朋友?
只是为了澄清,例如,这样的事情:
class A
{ friend template B; } // syntactic error yeah
因此任何 B<X>
变体都可以操纵 A
的任何受保护属性。
A
是一个小巧简单的class,有很多朋友在操作它的属性。只有其中一个需要成为模板。我知道我可以做到:
template <class T>
class A
{ friend class B<T>; }
但是这样我就不得不在所有其他朋友中更改我的代码,我想避免它。
您可以这样定义好友模板class:
class A{
template<typename T>
friend class B;
};
这将使 class B
的每个专业化成为 class A
的朋友。我有一个类似的问题,但目标相反:限制某些专业化:Friend template function instantiations that match parameter
是否可以与 class、class 模板的所有可能变体交朋友?
只是为了澄清,例如,这样的事情:
class A
{ friend template B; } // syntactic error yeah
因此任何 B<X>
变体都可以操纵 A
的任何受保护属性。
A
是一个小巧简单的class,有很多朋友在操作它的属性。只有其中一个需要成为模板。我知道我可以做到:
template <class T>
class A
{ friend class B<T>; }
但是这样我就不得不在所有其他朋友中更改我的代码,我想避免它。
您可以这样定义好友模板class:
class A{
template<typename T>
friend class B;
};
这将使 class B
的每个专业化成为 class A
的朋友。我有一个类似的问题,但目标相反:限制某些专业化:Friend template function instantiations that match parameter