gpt4 book ai didi

c++ - 将元组转换为变体

转载 作者:行者123 更新时间:2023-11-30 01:38:32 29 4
gpt4 key购买 nike

我有以下类型

using MyTuple=std::tuple<std::vector<char>,std::vector<double>,std::vector<int>>;

如何编写将 MyTuple 转换为以下类型的元函数?

std::variant<std::monostate,char,double,int> 

最佳答案

#include <vector>
#include <tuple>
#include <variant>

template <typename Tuple>
struct get_variant;

template <typename... Ts>
struct get_variant<std::tuple<Ts...>>
{
using type = std::variant<std::monostate, typename Ts::value_type ...>;
};


using MyTuple = std::tuple<std::vector<char>,std::vector<double>,std::vector<int>>;
using MyVariant = typename get_variant<MyTuple>::type;

using Expected = std::variant<std::monostate,char,double,int>;
static_assert(std::is_same_v<Expected, MyVariant>);

live example

关于c++ - 将元组转换为变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47599774/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com