Константные ренджи не компилируются
#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]