提问人:Ali Rojas 提问时间:8/5/2020 最后编辑:Ali Rojas 更新时间:8/5/2020 访问量:154
C++:模板可以成为类的朋友吗?
C++: Can a Template be friend of a Class?
问:
是否有可能结交一个类的朋友,一个类模板的所有可能变体?
只是为了澄清一下,例如,像这样的东西:
class A
{ friend template B; } // syntactic error yeah
因此,任何变体都可以操作 的任何受保护属性。B<X>
A
A
是一个小而简单的职业,有很多朋友操纵它的属性。然后只需要一个模板。我知道我可以这样做:
template <class T>
class A
{ friend class B<T>; }
但是,我将不得不更改所有其他朋友的代码,并且我想避免它。
答:
5赞
Dmitry Kuzminov
8/5/2020
#1
您可以像这样定义一个朋友模板类:
class A{
template<typename T>
friend class B;
};
这将使朋友的每一个专业化。我有一个类似的问题,其目标相反:限制某些专业化: 与参数匹配的友元模板函数实例化class B
class A
上一个:两个私有嵌套类之间的友谊
下一个:友元类和函数参数的作用域
评论