c++ - ContiguousIterator 有实际用途吗?

标签 c++ iterator c++17

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/

相关文章:

c++ - Lua 5.2 : undefined symbols when using luaL_dofile()

iterator - 如何编写值加倍迭代器?

c++ - 迭代器在与临时容器交换后变得无效

c++ - C++/CLI 中的模板函数签名解包

C++:哪个弱原子用于接收异步的缓冲区。 RDMA 传输?

c++ - 通过 CMake 定义预处理器宏?

c++ - 对 C++/分布式系统/网络项目的建议

c++ - MFC 应用程序的任何可测试架构或设计模式?

c++ - 如何遍历 vector 中包含的字符串?

c++ - <cmath> 函数在 C++17 中必须是 `noexcept` 吗?