How do you accept types derived from
std::variant
, and how do you extract the template arguments of std::variant
.