Можете ли вы написать концепцию для ContiguousIterator?


Я знаю, что существует понятие ContiguousIterator в спецификации слов смысле, но мне интересно, может ли он быть написан с использованием синтаксиса C++20/C++17 Concepts TS.

Моя проблема с этим заключается в том, что в отличие от RandomAccessIterator ContiguousIterator требует не просто некоторых операций, таких как it+123, но зависит от результата выполнения этой операции.

2 4

2 ответа:

Нет, вы не можете, не имея класса черт или другого помощника, где типы соглашаются быть смежными.

Ваша проблема в настоящее время неразрешима. Комитет рассматривает вопрос о том, что делать с выводом информации о непрерывном доступе к памяти. Ошибка заключается в том, что iterator_category не является признаком (хотя он находится в iterator_traits); это специальный тип. Его нельзя подтипировать, не нарушая существующий код. (Ошибка новичка, а что?) Комитет признал беспорядок. Это недавнее обсуждение говорит всем - > , Как вывести непрерывную память из итератора