Почему я не могу создать цепочку после std::ranges::views::join?C++

Программы на C++. Форум разработчиков
Ответить
Гость
 Почему я не могу создать цепочку после std::ranges::views::join?

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


I recently discovered the ranges stdandard library and encountered a strange behavior. When chaining multiple range adaptors, I can't chain after using

Код: Выделить всё

std::ranges::views::join
:

Код: Выделить всё

vec | std::ranges::views::slide(2) | std::ranges::views::join
works as intended, but

Код: Выделить всё

vec | std::ranges::views::slide(2) | std::ranges::views::join | std::ranges::views::slide(2)
will result in compilation error:

Код: Выделить всё

error: no match for 'operator|' (operand types are 'std::ranges::join_view' and 'std::ranges::views::__adaptor::_Partial')
265 |   vec | std::ranges::views::slide(2) | std::ranges::views::join | std::ranges::views::slide(2);
|   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|                                      |                                                     |
|                                      |                                                     std::ranges::views::__adaptor::_Partial
|                                      std::ranges::join_view
Why is that? and what do I have to do to make multiple joins work?
Thanks in advance!


Источник: https://stackoverflow.com/questions/781 ... sviewsjoin
Ответить

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

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

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

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

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