gpt4 book ai didi

C++17,制作一个使用依赖于模板参数的 std::variant 的可变参数模板?

转载 作者:行者123 更新时间:2023-11-30 04:42:46 36 4
gpt4 key购买 nike

在 C++17 中,有没有一种方法可以指定一个变体,其中变体中的每个条目都以某种重复的方式从可变参数模板进行了修改?

特别是,我想声明一个看起来像这样的模板,声明一个 std::variant成员,类似于:

template<typename... Args> class Contains {
...
std::variant<...> choices;
...
}

例如,Contains<Type1, Type2, Type3,....>会有它的 choices成员(member)是std::variant<const Type1 *, const Type2 *, const Type3 *, ....> .其中提供的类型不一定共享公共(public)基类。也就是说,每个提供给模板的类型都成为 std::variant 中的一个常量指针。

我知道我可能会直接手动将传递给模板的每个条目指定为必要的指针类型,我想知道是否有某种方法可以使用可变参数模板使声明更容易仅使用基本类型的名称来输入对于 Contains模板?

最佳答案

简单地做:

template <typename... Args>
class Contains
{
std::variant<const Args*...> choices;
};

关于C++17,制作一个使用依赖于模板参数的 std::variant 的可变参数模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58598340/

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