Диапазоны TS ломают изменения?

Говорят, что инъекция Ранг TS в std Пространство имен вызовет ряд критических изменений в стандартной библиотеке (например, эта ссылка). Кто-нибудь знает, что это за изменения?

1 ответ

Решение

Из Приложения B N4569 (как связано @Holt в комментариях выше):

  • Типы возвращаемых алгоритмов - изменены, чтобы включить конечный итератор

  • Сильные ограничения - алгоритмы, которые раньше требовали только < теперь требуются все операторы сравнения

  • Ограниченные функциональные объекты - ограничения добавлены к std::lessТип и тому подобное.

  • Iterators и Default-Constructibility - Ranges_v3 предполагает, что итераторы могут быть построены по умолчанию (полезным способом). Это в настоящее время не требуется.

  • iterator_traits не может быть специализированным - в Range_v3 это шаблон псевдонима.

  • N3351 - он также несовместим с предложением N3351 по ряду причин, которые я не буду здесь рассматривать.

Это просто резюме. Перейдите по ссылке на статью или найдите ее для более подробной информации.

Другие вопросы по тегам