Issue |
129747
|
Summary |
c++23 std::ranges::copy_n advances InputIterator one more time than necessary
|
Labels |
new issue
|
Assignees |
|
Reporter |
Be3y4uu-K0T
|
Repeated error, but for copy_n from ranges. [(old resolved bug)](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=50119)
Test program ([godbolt](https://godbolt.org/z/h6cbjqPT7)):
```c++
#include <iostream>
#include <sstream>
#include <vector>
#include <iterator>
int main()
{
std::istringstream s("1 2 3 4 5");
std::vector<int> v;
std::ranges::copy_n(std::istream_iterator<int>(s), 2, std::back_inserter(v));
std::ranges::copy_n(std::istream_iterator<int>(s), 2, back_inserter(v));
std::ranges::copy(v, std::ostream_iterator<int>(std::cout, " "));
std::cout << '\n';
}
```
Run:
`clang++ -std=c++23 index.cc -o index && ./index`
Actual output:
`1 2 4 5`
Expected output:
`1 2 3 4`
Environment:
```
% clang++ -v
Homebrew clang version 18.1.8
Target: arm64-apple-darwin24.3.0
Thread model: posix
InstalledDir: /opt/homebrew/bin
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs