https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100795
Bug ID: 100795 Summary: ranges::sample should not use std::sample directly Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: hewillk at gmail dot com Target Milestone: --- Since some random access ranges are only input ranges in C++17, this will cause ranges::sample to incorrectly reject the following valid case: #include <algorithm> #include <iostream> #include <random> #include <ranges> int main() { std::ranges::sample( std::views::iota(0, 42), std::ostream_iterator<int>{std::cout, " "}, 42, std::mt19937{std::random_device{}()}); } https://godbolt.org/z/dbWWTPKhx