З 21 березня ст на стандартах комітет проголосував затвердити Deprecation з std::iterator
запропонованих в P0174 :
Довга послідовність недійсних аргументів набагато менш зрозуміла для читача, ніж просто надання очікуваних
typedef
s у самому визначенні класу, що є підходом поточного робочого проекту, дотримуючись шаблону, встановленого вc ++ 14
Раніше c ++ 17спадщину від std::iterator
заохочувалося видалити теді з ітератора зразка реалізації. Але для припинення існування потрібно одне з таких речей:
- Тепер шаблон ітератора повинен включати всі необхідні
typedef
s - Тепер потрібно використовувати алгоритми, що працюють з ітераторами
auto
а не залежати від ітератора для оголошення типів - Локі Астарі припустив, що
std::iterator_traits
може бути оновлений до роботи без успадкування відstd::iterator
Чи може хтось пояснити мені, на який із цих варіантів мені слід розраховувати, оскільки я розробляю власні ітератори, орієнтуючись на c ++ 17 сумісність?