https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106676
--- Comment #6 from Avi Kivity <avi at scylladb dot com> ---
My reproducer:
#include <sstream>
#include <ranges>
#include <concepts>
#include <iterator>
#include <functional>
void f() {
auto stream = std::stringstream("aaa bbb");
auto src = std::ranges::subrange(std::istream_iterator<int>(stream),
std::istream_iterator<int>());
static_assert(std::ranges::input_range<decltype(src)>);
static_assert(std::same_as<typename
std::iterator_traits<decltype(src.begin())>::iterator_category,
std::input_iterator_tag>);
auto plus1 = src | std::views::transform(std::bind_front(std::plus<>(),
1));
static_assert(std::same_as<typename
std::iterator_traits<decltype(plus1.begin())>::iterator_category,
std::input_iterator_tag>);
static_assert(std::ranges::input_range<decltype(plus1)>);
}
https://godbolt.org/z/3a1WPjzP3