ContiguousIterator有实际用途吗?

时间:2018-09-11 08:29:43

标签: c++ iterator c++17

C ++ 17引入了ContiguousIterator,但引入了there's no corresponding contiguous_iterator_tag

如果无法通过std::iterator_traits检查/强制ContiguousIterator使用实用

此问题与contiguous iterator detection不同,因为它不是“为什么没有标签”,而是“如果没有标签如何使用”。

1 个答案:

答案 0 :(得分:5)

C ++ 17中的命名要求是首要的表示法。如果它们强加了可检测的要求,则它们仅与语言中的可检测事物相关。而且ContiguousIterator并不对实现它们的类型强加可检测的要求。

因此ContiguousIterator允许您执行的最实用的操作是在文档中写“您必须传递ContiguousIterator”,同时要了解读者会追踪该术语的具体细节。但是不可以,C ++ 17中定义的ContiguousIterator不允许您编写任何可以静态检测不连续的ContiguousIterators和RandomAccessIterators之间差异的内容。