考虑:
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;
这将我的类型可以容纳的类型数量的限制pow(BOOST_VARIANT_LIMIT_TYPES, L)
扩展到,其中L
是嵌套的级别数。
这(在某种程度上)是一个可接受的解决方案,还是只是一个糟糕的 hack?那里有更好的解决方案吗?也许老式union
的更合适?