Closed
Description
C++20 allows iterators for input ranges to be move-only, for example std::ranges::basic_istream_view::iterator
. Unfortunately fmt::join_view
copies iterators in various places, meaning it can't be used with such ranges:
int main()
{
std::istringstream iss("1 2 3 4 5");
auto view = std::views::istream<int>(iss);
fmt::println("{}", fmt::join(view, ", ")); // Error, use of deleted iterator copy constructor
}