【发布时间】:2016-12-17 14:29:45
【问题描述】:
STL 的
g++ 实现允许我在我的客户端代码中构造一个具有任意地址值的 std::vector<T>::iterator 类型的迭代器:
int* i_ptr;
std::vector< int >::iterator it(i_ptr);
是标准能力,还是只是初步实现?
它的设计用途是什么?
【问题讨论】:
-
该标准并未将其定义为必需功能。事实上,这样的结构应该是私有的,只能从
std::vector访问,通过friendship。该标准甚至不否认这种情况的发生(所以 - 可能 - 我们无法维持它是一个缺陷,但可能有人可以报告它)