#include <string>
#include <variant>
int main()
{
using variant_base = std::variant< int, double >;
using variant_derived_and_flattened = std::variant< std::string, variant_base >;
// the above does not produce the desired
// std::variant< int, double, std::string >
static_assert( std::is_same< variant_base, variant_derived_and_flattened >{} );
}
static_assert失败。
我认为没有办法做到这一点,并且希望能对此进行确认,但是也许有人知道该怎么做?
您可以创建一个元函数来转换变量类型。