В чем разница между iterator_category и iterator_concept?C++

Программы на C++. Форум разработчиков
Ответить
Гость
 В чем разница между iterator_category и iterator_concept?

Сообщение Гость »


C++20 предлагает более мощную систему итераторов, одна из них — введение iterator_concept на основе iterator_category.

Я обнаружил, что iterator_concept и iterator_category многих итераторов в C++20 несовместимы. В качестве примера возьмем самый известный iota_view:

с использованием R = decltype(views::iota(0)); static_assert(random_access_range); используя I = ranges::iterator_t; static_assert(same_as); static_assert(same_as); Хотя R моделирует random_access_range, iterator_category его итератора представляет собой просто input_iterator_tag, что несовместимо с iterator_concept.

Почему в C++20 представлена ​​iterator_concept? Какова его цель? Если я реализую свой собственный итератор, как мне правильно определить iterator_concept и iterator_category? Имеет ли iterator_category значение в C++20?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»