Re[5]: std::views::filter и const
От: so5team https://stiffstream.com
Дата: 01.12.20 12:57
Оценка:
Здравствуйте, Chorkov, Вы писали:

C>Как ни странно, take — работает: https://wandbox.org/permlink/Y74CJT4bN1PFMRRF,

C>а filter — нет: https://wandbox.org/permlink/aI2gSYhTIwn36BiX

В реализации take_view видны две версии end(): одна для случая сложного вложенного view, вторая для случая простого view
https://github.com/gcc-mirror/gcc/blob/d66db7412ee8e16e08b340767f4c00a3b570e730/libstdc%2B%2B-v3/include/std/ranges#L1763-L1789
Когда задействуется filter_view, то выбирается неконстантный end, т.к. filter_view, видимо, к простым view не относится.

Я удивлен тому, что для простого, но неограниченного в размере, view выбирается константный end. Там же вроде как тоже надо считать количество извлеченных элементов.
Отредактировано 01.12.2020 13:01 so5team . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.