C++17 引入了 ContiguousIterator
,但是 there's no corresponding contiguous_iterator_tag
。
如果不能通过 std::iterator_traits
检查/强制执行,ContiguousIterator
是否有任何实际用途?
这个问题和contiguous iterator detection不同,不是“为什么没有标签”,而是“没有标签怎么用”。
最佳答案
C++17 中的命名要求首先是符号。如果它们强加了可检测的要求,它们只会与语言中可检测的事物相关联。 ContiguousIterator 不会对实现它们的类型强加可检测的要求。
因此,ContiguousIterator 允许您做的最实际的事情是在您的文档中写下“您必须传递一个 ContiguousIterator”,并理解读者将追踪该术语的具体细节。但是不行,C++17 中定义的 ContiguousIterator 不允许您编写任何可以静态检测 ContiguousIterator 和不连续的 RandomAccessIterator 之间差异的内容。
关于c++ - ContiguousIterator 有实际用途吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52271797/