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