在C ++中,给定一个std :: variant类型,是否可以添加其他类型以形成另一种变量类型? [重复]

问题描述 投票:0回答:1
#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失败。

我认为没有办法做到这一点,并且希望能对此进行确认,但是也许有人知道该怎么做?

c++ using variant
1个回答
6
投票

您可以创建一个元函数来转换变量类型。

© www.soinside.com 2019 - 2024. All rights reserved.