有没有一种方法可以避免在std :: variant类成员中为所有类型编写构造函数?

In78

我有struct这样的:

struct A
{
    int a;
    std::variant<int, float, char> b;

    A() = default;
};

我想添加一个构造器,该构造器将同时初始化ab看来我必须写一个构造函数中的所有类型b一样A::A(int a1, int b1)A::A(int a1, float b1)等等。

有办法避免这种情况吗?

丹尼尔·兰格

您可以为您的类创建一个模板化的构造函数,并且最好使用完美的转发将其参数传递给variantmember的构造函数

template <typename T>
A::A(int i, T&& t) : a(i), b(std::forward<T>(t)) { }

然后,您可以编写,例如:

A obj1(1, -7.4f);  // float variant member
A obj2(2, 7);      // int variant member
A obj3(3, 'c');    // char variant member

不会涉及不必要的移动/副本/临时工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有没有一种方法可以避免在MySQL中多次编写内联视图

来自分类Dev

有没有一种方法可以避免在Spring Framework中创建大量的接口和类?

来自分类Dev

有没有一种方法可以避免在Gatsby中构建具有某些路径的页面?

来自分类Dev

有没有一种方法可以给HTML输入一些命名空间以避免冲突?

来自分类Dev

有没有一种方法可以避免将GAC与SSIS一起使用

来自分类Dev

在PHPStorm中,有没有一种方法可以避免对* .phar文件建立索引?

来自分类Dev

在Python中寻找串行端口更改时,有没有一种方法可以避免轮询?

来自分类Dev

有没有一种方法可以避免在apache中阅读我的网站?

来自分类Dev

在Python中寻找串行端口更改时,有没有一种方法可以避免轮询?

来自分类Dev

有没有一种方法可以避免在结尾处发表评论?

来自分类Dev

有没有一种方法可以避免将AWS_SECRET_KEY存储在.ebextensions上?

来自分类Dev

有没有一种方法可以避免使用Numpy广播的任意M x N矩阵?

来自分类Dev

播放框架:有没有一种方法可以避免奇怪的表单助手语法?

来自分类Dev

有没有一种方法可以避免在kwargs中使用关键字

来自分类Dev

有没有一种方法可以避免使用._1使其更具可读性

来自分类Dev

有没有一种方法可以避免在付款成功之前更新订阅对象?

来自分类Dev

有没有一种方法可以避免需要保护的重写异步void OnStart()

来自分类Dev

有没有一种方法可以避免在kwargs中使用关键字

来自分类Dev

有没有一种方法可以避免使用._1使其更具可读性

来自分类Dev

有没有一种巧妙的方法可以避免 JavaFX 中的嵌套事件?

来自分类Dev

有没有一种方法可以对类中的所有成员使用`std :: optional`

来自分类Dev

有没有一种方法可以避免AngularJS在页面加载之前显示所有隐藏的元素?

来自分类Dev

慢速MySQL查询:有没有一种方法可以避免对具有左联接的每一行进行条件选择计数?

来自分类Dev

当我有时只想使用别名时,有没有一种方法可以避免多余的“ using”指令?

来自分类Dev

有没有一种方法可以避免在SWI-Prolog控制台中为模块的每个谓词加上前缀?

来自分类Dev

有没有一种方法可以避免删除删除另一个表上的外键记录

来自分类Dev

有没有一种方法可以避免对每个Func参数计数使用Func <T,...>参数重载方法

来自分类Dev

有没有一种方法可以避免在访问者模式的每个元素中使用方法进行自我调用?

来自分类Dev

有没有一种方法可以避免SQL Server 2008 R2中的此循环?

Related 相关文章

  1. 1

    有没有一种方法可以避免在MySQL中多次编写内联视图

  2. 2

    有没有一种方法可以避免在Spring Framework中创建大量的接口和类?

  3. 3

    有没有一种方法可以避免在Gatsby中构建具有某些路径的页面?

  4. 4

    有没有一种方法可以给HTML输入一些命名空间以避免冲突?

  5. 5

    有没有一种方法可以避免将GAC与SSIS一起使用

  6. 6

    在PHPStorm中,有没有一种方法可以避免对* .phar文件建立索引?

  7. 7

    在Python中寻找串行端口更改时,有没有一种方法可以避免轮询?

  8. 8

    有没有一种方法可以避免在apache中阅读我的网站?

  9. 9

    在Python中寻找串行端口更改时,有没有一种方法可以避免轮询?

  10. 10

    有没有一种方法可以避免在结尾处发表评论?

  11. 11

    有没有一种方法可以避免将AWS_SECRET_KEY存储在.ebextensions上?

  12. 12

    有没有一种方法可以避免使用Numpy广播的任意M x N矩阵?

  13. 13

    播放框架:有没有一种方法可以避免奇怪的表单助手语法?

  14. 14

    有没有一种方法可以避免在kwargs中使用关键字

  15. 15

    有没有一种方法可以避免使用._1使其更具可读性

  16. 16

    有没有一种方法可以避免在付款成功之前更新订阅对象?

  17. 17

    有没有一种方法可以避免需要保护的重写异步void OnStart()

  18. 18

    有没有一种方法可以避免在kwargs中使用关键字

  19. 19

    有没有一种方法可以避免使用._1使其更具可读性

  20. 20

    有没有一种巧妙的方法可以避免 JavaFX 中的嵌套事件?

  21. 21

    有没有一种方法可以对类中的所有成员使用`std :: optional`

  22. 22

    有没有一种方法可以避免AngularJS在页面加载之前显示所有隐藏的元素?

  23. 23

    慢速MySQL查询:有没有一种方法可以避免对具有左联接的每一行进行条件选择计数?

  24. 24

    当我有时只想使用别名时,有没有一种方法可以避免多余的“ using”指令?

  25. 25

    有没有一种方法可以避免在SWI-Prolog控制台中为模块的每个谓词加上前缀?

  26. 26

    有没有一种方法可以避免删除删除另一个表上的外键记录

  27. 27

    有没有一种方法可以避免对每个Func参数计数使用Func <T,...>参数重载方法

  28. 28

    有没有一种方法可以避免在访问者模式的每个元素中使用方法进行自我调用?

  29. 29

    有没有一种方法可以避免SQL Server 2008 R2中的此循环?

热门标签

归档