gpt4 book ai didi

c++ - 与其他模板类中的所有模板类成为 friend

转载 作者:太空宇宙 更新时间:2023-11-04 12:11:57 24 4
gpt4 key购买 nike

看下面的代码:

template <typename T, int d>
class Grid {
//Following line is what I need to change
template<int d2> friend class Iterator<T,d,d2>;
}

template <typename T, int d, int d2>
class Iterator{
//some code that use private fields of Grid<T,d>
}

template <typename T, int d>
class Iterator<T,d,0>{
//This specialized class also need to use private parts of Grid<T,d>
}

专用和非专用迭代器都应该可以访问私有(private)部分。线路:

template<int d2> friend class Iterator<T,d,d2>;

没有编译错误:部分特化 `Iterator' 声明了友元

有人知道怎么换吗?

编辑:感谢@Xeo 的评论,我得以做出解决方法:

template<typename TT, int dd, int d2> friend class Iterator;

然而,这使 friend 能够访问所有迭代器模板,而不仅仅是那些具有匹配的第一个和第二个模板参数的模板。

最佳答案

这只是一个解决方法,但它正在工作:

template<typename TT, int dd, int d2> friend class Iterator;

关于c++ - 与其他模板类中的所有模板类成为 friend ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9422902/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com