template<typename T,typename U>class Y {};class X { public: X(int value) : i(value) {} const int& getI() const { return i; } private: int i; template<class U> frIEnd class Y<X,U>;};
我不确定朋友声明的模板化是否允许(更不用说朋友声明的部分模板化).有没有办法做到这一点?或者我是否被逐一列出所有朋友?
谢谢,
马特
class X { template<class T,class U> frIEnd class Y;};
我想,在大多数情况下,这应该足够了.
使用C 11,您实际上可以成为模板化别名的朋友:
template<typename T,typename U>class Y { };class X { public: X(int value) : i(value) {} const int& getI() const { return i; } private: int i; template<class U> using YX = Y<X,U>; template<class U> frIEnd class YX;};
但是,这似乎不起作用(我不确定上面的朋友声明是否有任何影响).
总结以上是内存溢出为你收集整理的c – 朋友类的部分模板专业化?全部内容,希望文章能够帮你解决c – 朋友类的部分模板专业化?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)