gpt4 book ai didi

c++ - 创建变体交替值和值数组

转载 作者:行者123 更新时间:2023-12-01 23:08:34 29 4
gpt4 key购买 nike

我想要这样的东西:

template <typename... Ts>
using make_variant_t = /* ??? */;

例如,make_variant_t<Foo, Bar>评估为类型

 std::variant<Foo, std::vector<Foo>, Bar, std::vector<Bar>>

按此顺序。如果可能的话,如何实现?

最佳答案

Boost.Mp11这是一篇简短的单行文章(一如既往):

template <typename... Ts>
using make_variant_t = mp_append<variant<Ts, vector<Ts>>...>;

make_variant_t<int, char>首先会产生两个变体,variant<int, vector<int>>variant<char, vector<char>> 。这些都是 Mp11 意义上的“列表”,并且 mp_append获取一堆列表并将它们连接在一起,生成 variant<int, vector<int>, char, vector<char>>如预期的。 Demo .

关于c++ - 创建变体交替值和值数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58919721/

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