Сохранение std::forward_range во время преобразования фрагмента?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Сохранение std::forward_range во время преобразования фрагмента?

Сообщение Anonymous »

ниже представлена ​​упрощенная версия преобразования, над которым я работаю (запустите его на godbolt):

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

#include 
#include 
#include 

int main() {
using namespace std;

static constexpr auto arr = array{1, 2, 3, 4, 5, 6, 7};
static constexpr auto encode = views::chunk(3) |
views::transform([](auto chunk) {
std::array a{};
auto i = 0;
for (const auto j : chunk) {
a.at(i++) = j;
}
a.at(3) = a.at(0);
return a;
}) |
views::join;
auto encoded = arr | encode;

static_assert(ranges::contiguous_range);
static_assert(ranges::input_range);
static_assert(not ranges::forward_range);

for (const auto i : encoded) {
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79079308/preserving-stdforward-range-during-chunk-transformation[/url]
Ответить

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

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

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

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

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