boost/any.cppなんだよっ
C++のboost/any.cppを使ってみた.
ドキュメントとかはなんかこの辺みた.
Chapter 3. Boost.Any - 1.61.0
boostjp.github.io
基本的には任意の型を代入できるような型(多分).
STLも代入できるし,自作クラスとかも代入できる.
つまりvector<boost::any>とかするといろんな型を収めた可変長配列が使用できそう...
値を取り出すときは, boost::any_cast<T>を用いて型をキャストする.
型を判定するには .type()がtype_info型を返すので x.type()==typeid(int)のように判定すれば良い...(はず)
以下試してみたコード
出力は
type int : 1
type char : A
type double : 3.3
type vector<int> : [10,20,30,]
type string : hoge
type fuga : 4
となる.
**追記
どうやらanyはC++1y,14ならstd::experimental::any,C++17ならstd::anyがあるらしい.
わざわざboostを使う必要は無いっぽい?
std::experimental::any - cppreference.com