Константные ренджи не компилируются

#include <cctype>
#include <iostream>
#include <ranges>

constexpr auto is_print = [](auto c) { return std::isprint(c); };
constexpr auto printable = std::views::filter(is_print);

int main() {
    constexpr auto chars = std::views::iota('\0')
                           | std::views::take(256)
                           | printable;

    for (const auto c : chars) {
        std::cout << c << '\n';
    }
}

Почему программа не компилируется? Как исправить?

error: passing 'const std::ranges::filter_view<std::ranges::take_view<std::ranges::iota_view<char, std::unreachable_sentinel_t> >, <lambda(auto:17)> >' as 'this' argument discards qualifiers [-fpermissive]

Ответы (0 шт):