タグ

Rangeと2013年に関するItisangoのブックマーク (1)

  • find関数で見るC++の変化 - C++と色々

    STLアルゴリズムはそのアルゴリズムを適用する範囲の先頭と末尾のイテレータのペアを引数に取ります。実際には範囲全体にアルゴリズムを適用させるケースが多く、イテレータのペアを書くのが冗長に感じることがあります。そこでBoost.Rangeには、範囲を引数に渡すことでその範囲全体にSTLアルゴリズムを適用する関数たちがあります。Boost.Rangeのfind関数の実装例を見てC++03/C++11/C++14の比較をしたいと思います。 C++03 まず、範囲なら何でも、コンテナでも組み込み配列でもアルゴリズムに適用できるように、begin関数、end関数を定義します。 namespace ns { //コンテナ版begin/end関数 //非const、constでオーバーロード template <typename Container> typename Container::iterat

    find関数で見るC++の変化 - C++と色々
    Itisango
    Itisango 2013/11/30
    “begin/endが標準入りしたので、自分で作成する必要がなくなりました。さらに、戻り値の型を求めるメタ関数も、C++11で戻り値の後方配置と式から型を求めるdecltypeが入りましたので必要無くなります。”
  • 1