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

问题描述 投票:0回答:1

我使用的是GCC 6.2.0,默认情况下使用的是C ++ 14。在将来的某个时候,我们想转向C ++ 17。我想在我们的某些类中添加一些C ++迭代器,但是它们在C ++ 14和C ++ 17之间已更改。如果我现在编写它们,那么在升级编译器版本时是否需要在以后重写它们,或者是否有办法现在编写一次并使其向前兼容?

c++ stl c++14 c++17
1个回答
3
投票

我相信您在说的更改是删除了类模板std::iterator

std::iterator过去将永远是实用程序助手;之所以将其删除是因为它是一个简单的实用程序,并且因为人们认为它不仅仅是一个实用程序帮助程序。

不要使用std::iterator,只需自己定义typedef。

如果更新已经使用std::iterator的代码库,请创建您自己的代码库(类似于6行代码,然后搜索/替换。)>

© www.soinside.com 2019 - 2024. All rights reserved.