13
#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 の反復子と互換性がないのですか?

4

1 に答える 1