Почему std::iterator_traits::iterator_category для указателей не является std::contigious_iterator_tag? ⇐ C++
-
Гость
Почему std::iterator_traits::iterator_category для указателей не является std::contigious_iterator_tag?
iterator_traits специализируется на указателях, например
пространство имен std { шаблон требуется is_object_v struct iterator_traits { использование iterator_concept = contigious_iterator_tag; используя iterator_category = random_access_iterator_tag; используя value_type = Remove_cv_t; используя разницу_типа = ptrdiff_t; используя указатель = Т*; используя ссылку = T&; }; } - [iterator.traits] p5
Почему для указателей используется только iterator_concept, но не iterator_category, std::contigious_iterator_tag. Насколько мне известно, указатели — это непрерывные итераторы во всех смыслах.
Это недосмотр или есть практическая причина?
iterator_traits специализируется на указателях, например
пространство имен std { шаблон требуется is_object_v struct iterator_traits { использование iterator_concept = contigious_iterator_tag; используя iterator_category = random_access_iterator_tag; используя value_type = Remove_cv_t; используя разницу_типа = ptrdiff_t; используя указатель = Т*; используя ссылку = T&; }; } - [iterator.traits] p5
Почему для указателей используется только iterator_concept, но не iterator_category, std::contigious_iterator_tag. Насколько мне известно, указатели — это непрерывные итераторы во всех смыслах.
Это недосмотр или есть практическая причина?
Мобильная версия