|
|
1
14
可以使用新类型的正向声明。
有了这个间接的方向,编译器应该可以让您摆脱它。 它不是很漂亮,但老实说,我认为你不能轻易打破自我参照。 |
|
2
5
不太难看,考虑到_ 这在GCC4.0.1中工作,并在COMEAU严格模式下编译良好。 模板定义被解析和延迟,直到它们被实例化。编译器甚至在创建一个rec-map-迭代器之前都看不到它是什么,到那时它就知道如何创建了;v)。
这是我使用的测试程序。
|
|
3
2
我不喜欢从我以前的答案中的容器派生,所以这里有一个替代方法:
现在你必须使用
使用派生迭代器类型应该可以。例如,您仍然可以从这个结构的元素初始化反向迭代器。 |
|
|
4
2
除了potatoswatter的答案之外,如果您不介意多次引用整个模板化的映射类型,您只需要子类化迭代器,不需要任何预先声明:
然后使用完整类型:
另外,这里有一个更新(我目前为止最喜欢的),通过声明ReCyMax作为别名,可以被模板化:
这与Potatoswatter的版本相同:
|
|
|
Julia · 矢量中相加为总和S的值的数量 3 年前 |
|
|
C_Rod · 在模板方法中确定STL容器中项目的数据类型 4 年前 |
|
|
quantumwell · 将空向量放入std::map() 8 年前 |
|
|
OutOfBound · 对未初始化内存使用算法的优点 8 年前 |
|
|
DarthRubik · 在使用列表删除之后,迭代器如何不无效 8 年前 |