[英]Is it possible to create iterators with C++14 that are C++17 compliant?
我使用的是 GCC 6.2.0,它默认使用 C++14。 在未来的某个时候,我们想迁移到 C++17。 我想在我们的一些类中添加一些 C++ 迭代器,但它们在 C++14 和 C++17 之间发生了变化。 如果我现在写它们,我以后升级编译器版本时是否必须重写它们,或者有没有办法现在写一次并让它们向前兼容?
我相信您所说的变化是删除了 class 模板std::iterator
。
std::iterator
过去和永远只是一个实用助手; 它被删除是因为它是一个简单的实用程序,并且因为人们认为它不仅仅是一个实用程序助手。
不要使用std::iterator
,只需自己定义 typedef。
如果更新已经使用std::iterator
的代码库,请创建自己的(就像 6 行代码)并搜索/替换。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.