https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94674
Bug ID: 94674 Summary: std::ranges::basic_istream_view::iterator is missing std::iterator_traits entries Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: gcc-bugs at marehr dot dialup.fu-berlin.de Target Milestone: --- Hi gcc-team, I'm not sure if I should have named the issue `std::iterator_traits is missing default values for an iterator` (https://eel.is/c++draft/iterator.traits#3.2). Maybe I misunderstood this, but I thought that I can query every iterator for it's traits. The following code does not work: ```c++ #include <ranges> #include <istream> #include <string_view> int main() { // std::string_view view; // does work auto && view = std::ranges::basic_istream_view<int, char, std::char_traits<char>>{}; // does not work // auto && view = std::ranges::take_view<std::string_view>{}; // does work using iterator_t = std::ranges::iterator_t<decltype(view)>; using iter_value1_t = std::iter_value_t<iterator_t>; using iter_value2_t = typename std::iterator_traits<iterator_t>::value_type; static_assert(std::same_as<iter_value1_t, iter_value2_t>); return 0; } ``` with `g++-10 -std=c++2a` https://godbolt.org/z/QAfdml