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

可変引数テンプレートでの型リストまとめ

C++0xでは、可変引数テンプレートという機能が追加されます。 これを使うと、テンプレートパラメータを可変個受け取ることができ、 template <class... Args> // ...と書くと可変引数テンプレートになる class tuple; 可変引数テンプレートは型のリストと見なすことができま</class...>…

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

C++

型リストのいずれかの型が述語を満たせばtrue 全ての型が述語を満たさない場合はfalseを返すメタ関数です。 template <template <class T> class P, class Seq> struct any; template <template <class T> class P, class Head, class... Tail> struct any<P, tuple<Head, Tail...>> { static const bool value = P<Head>::value ?</head></p,></template></template>…

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

C++

型リストの全ての型が述語を満たす場合はtrue 述語を満たさない型があった場合はfalseを返すメタ関数です。 template <template <class T> class P, class Seq> struct all; template <template <class T> class P, class Head, class... Tail> struct all<P, tuple<Head, Tail...>> { static const bool value = !P<Head>::value </head></p,></template></template>…