Можно ли создать итераторы с C ++ 14, совместимые с C ++ 17? - PullRequest
0 голосов
/ 30 октября 2019

Я использую GCC 6.2.0, который по умолчанию использует C ++ 14. В какой-то момент в будущем мы бы хотели перейти на C ++ 17. Я хотел бы добавить некоторые итераторы C ++ в некоторые из наших классов, но они изменились между C ++ 14 и C ++ 17. Если я напишу их сейчас, придется ли мне переписывать их позже, когда мы будем обновлять версии компилятора, или есть ли способ написать их один раз сейчас и сделать их совместимыми вперед?

1 Ответ

4 голосов
/ 31 октября 2019

Я полагаю, что вы говорили о том, что удаление шаблона класса std::iterator.

std::iterator было и всегда будет только вспомогательным средством;она была удалена, потому что это простая утилита, и потому что люди, считающие ее не просто помощником утилиты.

Не используйте std::iterator, просто определите typedefs самостоятельно.

Если вы обновляете кодовую базу, которая уже использует std::iterator, создайте свою собственную (это похоже на 6 строк кода) и выполните поиск / замену.

...