21 марта st комитет по стандартизации проголосовал за утверждение устаревшего std::iterator
, предложенного в P0174:
Длинная последовательность аргументов void гораздо менее понятна читателю, чем просто предоставление ожидаемого
typedef
в самом определении класса, которое является подходом, используемым текущим рабочим черновиком, следуя шаблону, установленному на С++ 14
Наследование Pre-С++ 17 от std::iterator
было рекомендовано удалить утомительную версию с использованием итератора. Но для устаревания потребуется одна из следующих вещей:
- Оболочка итератора теперь должна включать все необходимые
typedef
s - Алгоритмы, работающие с итераторами, теперь должны использовать
auto
, а не в зависимости от итератора для объявления типов - Loki Astari предложил, что
std::iterator_traits
может быть обновлен, чтобы работать без наследующий отstd::iterator
Может кто-нибудь просветить меня, по какому из этих вариантов я должен ожидать, поскольку я проектирую пользовательские итераторы с учетом совместимости с С++ 17?