experiments: update the exploration of variants
-
see if we can try with std::variant -
make sure that the ctors are declared no-throw, as Boost.Variant is taking costly safety measures when assign types that can throw. -
check whether boost::blank
can help