どれがクラスブーストを提供ブースト:: JavaScriptの変数のように情報の任意の種類を格納できる任意の。
#include <ブースト/ any.hpp> の#include < ストリング > の#include <iostreamの> int型のmain(){ ブースト::任意A = 1 。 std :: coutの <<ブースト:: any_cast < 整数 >(A)<< はstd ::てendl; もし(!a.empyt()){ constのはstd :: TYPE_INFO&TI = a.type(); std :: coutの << ti.name()<< はstd ::てendl; } A = 3.14 。 std :: coutの <<ブースト:: any_cast < ダブル >(A)<< はstd ::てendl; ; std :: coutの <<はstd :: boolalpha << :: any_cast <後押しブール値 >(A)<< はstd ::てendlを。 リターン 0 ; }
型ブーストの変数::任意のは、彼らが保存することができるもので、完全に無制限ではありません。型ブーストの変数に格納された任意の値::任意のは、コピー構築可能でなければなりません。
後押しする:: any_castをテンプレートパラメータとして適切な型を渡すことによって、変数の値が変換されます。無効な型が指定されている場合、型ブースト:: bad_any_castの例外がスローされます。
、いずれかの情報が含まれています::型ブーストの変数かどうかを確認してください)(空のメンバ関数を使用します。格納された情報の種類を確認するには、メンバ関数のタイプ()を使用。