boost::function_types

トップページ > メタプログラミング >

abstract

必要なヘッダ
<boost/function_types/*.hpp>
出来ること
関数の型に関する情報取得色々
リファレンス
en

sample

#include <iostream>
#include <typeinfo>
#include <boost/function_types/result_type.hpp>
#include <boost/function_types/parameter_types.hpp>
using namespace std;
using namespace boost::function_types;

int main()
{
	typedef char (*Foo)(bool, int);

	cout << typeid( result_type<Foo>::type     ).name() << endl;
	cout << typeid( parameter_types<Foo>::type ).name() << endl;
}

出力例

char
struct boost::mpl::vector2<bool,int>

(Visual C++ 2005 の場合。typeid(...).name() の結果は処理系依存です。 他の処理系ではこんなに綺麗に出ないこともあります。)

etc

関数の型から引数の型リストをとりだしたり、 またその逆に型リストから関数の型を合成したりするライブラリです。 MPL等を使ってアルゴリズミックに型設計してる時などに便利かも。

see also

presented by k.inaba (kiki .a.t. kmonos.net) under CC0