2009-04-08から1日間の記事一覧

可変引数テンプレートでの型リスト - add_if/add_if_c

C++

filterの実装用メタ関数。 パラメータで受け取った述語(メタ関数)がtrueを返す場合に、 型リストに型を追加するメタ関数です。 template <bool B, class T, class Seq> struct add_if_c; template <class T, class... Seq> struct add_if_c<true, T, tuple<Seq...>> { typedef tuple<Seq..., T> type; }; template <class T, class... Seq> struct add_if_c</class></seq...,></true,></class></bool>

可変引数テンプレートでの型リスト - filter

C++

filterは型リストから条件にあった型を抽出するメタ関数です。 mapと同じく高階メタ関数になってます。 template <template <class T> class P, class Seq1, class Seq2> struct filter_impl; template <template <class T> class P, class... Seq, class Head, class... Tail> struct filter_impl<P, tuple<Seq...>,</p,></template></template>…

『C++テンプレートテクニック』もうすぐ発売です。

私とεπιστημηさんの2人で、C++テンプレート本書きました。 (ぼくは著者名を本名で載せてます)発売日は2009/04/24(金)で、税込2,940円になります。 内容は、テンプレートの基礎から始まり、テンプレートメタプログラミング、 Boost C++ Librariesの中で使わ…