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

Reply via email to