Почему в алгоритмах std::range отсутствуют параллельные перегрузки (принимающие параметр политики выполнения)?

Многие функции в библиотеке алгоритмов C++ имеют перегрузки, принимающие параметр типаExecutionPolicy, например std::copy. Однако я заметил, что соответствующие функции вstd::rangesпространство имен не имеет этих параллельных перегрузок. Это прискорбно, потому что это означает, что во многих случаях варианты без ранжирования будут более полезными.

Что является причиной этого? И есть ли предложения добавить параллельные перегрузки вstd::ranges пространство имен?

1 ответ

Решение

Исходя из многочисленных ответов Эрика Ниблера (и других авторов) (во время переговоров и в его комментариях на github), им (комитету и авторам) просто не хватило времени. Предложение уже было большим (обратите внимание на тот факт, что в нем много ссылок на<concepts> предложения), а добавление еще чего-то порождает риск не отправить ничего из <ranges>в C++20.

Параллельные перегрузки - не единственное, что упустило лодку. Различныйviewsотсутствуют (как из-за нехватки времени, так и из-за каких-то семантических проблем (глядя на вас,zip)) есть ноль actions и ничего из <numeric> был расширен.

<ranges>несомненно, будет развиваться дальше, но для доработки предложений требуется время. Мы не можем предсказать будущее, но я был бы серьезно удивлен, если бы<ranges>не стал больше с C++23.

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