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