我有这样的struct
:
struct A
{
int a;
std::variant<int, float, char> b;
A() = default;
};
我想添加一个构造器,该构造器将同时初始化a
和b
。看来我将不得不为b
中的所有类型(如A::A(int a1, int b1)
,A::A(int a1, float b1)
等)编写一个构造函数。
是否有避免这种情况的方法?
我有一个这样的结构:struct A {int a; std :: variant
您可以为您的类创建一个模板化的构造函数,并且充其量使用完善的转发将其参数传递给variant
成员的构造函数:
我想类似的事情也可以完成,但是,它将复制您传递的变量。]>
A::A(int a1, std::variant<int, float, char> b1)