#include <vector>
#include <iostream>
#include <range/v3/all.hpp>
int main()
{
auto coll = std::vector{ 1, 2, 3 };
ranges::copy(
coll,
ranges::ostream_iterator<int>{ std::cout, ", " }
); // ok
ranges::copy(
coll,
std::ostream_iterator<int>{ std::cout, ", " }
); // error
}
問題は上記のコードに示されています。range-v3-0.3.7を使用しています。
私にとって、一般的なアルゴリズムcopy
は、出力反復子の要件を満たしている限り、宛先反復子の型を気にするべきではありません。
もしそうなら、なぜ範囲のアルゴリズムは std の反復子と互換性がないのですか?