繁体   English   中英

是否可以使用符合 C++17 的 C++14 创建迭代器?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM