検討:
typedef boost::variant<T0, ..., TN> variant_T_t;
typedef boost::variant<U0, ..., UN> variant_U_t;
...
typedef boost::variant<variant_T_t, variant_U_t, ...> variant_t;
これにより、 my type が保持できる型の数の制限が に拡張されます。pow(BOOST_VARIANT_LIMIT_TYPES, L)
ここで、L
はネストされたレベルの数です。
これは(ある程度)許容できる解決策ですか、それとも単に悪いハックですか?そこにもっと良い解決策はありますか?おそらく、昔ながらのunion
ほうが適切でしょうか?