【发布时间】:2015-11-19 13:42:29
【问题描述】:
我正在编写一个自定义输入迭代器,它适应底层序列并产生转换后的值(我知道boost::transform_iterator,但这是特殊的)。
我不确定如何为此迭代器定义pointer-type。由于迭代器动态生成值,reference 被定义为value_type 的别名(允许输入迭代器,reference 必须只能转换为value_type)。我的直觉是它仍然只是value_type *,我真的想不出还有什么有意义的。
但是,我没有找到任何有关pointer 预期使用的上下文的信息,因此不知道对其有什么要求,以及boost::transform_iterator 的文档(通常提供有用的建议)对这个问题保持沉默。
所以我的问题是,将pointer 定义为value_type * 通常安全吗?如果没有,有什么替代方案?
【问题讨论】: