参数包函数参数可以默认吗?

迈克·金汉

这一点与gcc 4.9.2和clang 3.5.2完全不同。该程序:

template<typename ...Ts>
int foo(int i = 0, Ts &&... args)
{
    return i + sizeof...(Ts);
}

int main()
{
    return foo();
}

编译时不加gcc(-std=c++11 -Wall -pedantic)的注释lang声:

error: missing default argument on parameter 'args'

随着foo修订为:

template<typename ...Ts>
int foo(int i = 0, Ts &&... args = 0)
{
    return i + sizeof...(Ts);
}

clang没有抱怨,但是gcc说:

error: parameter pack ‘args’ cannot have a default argument

哪个编译器正确?

克瑞克SB

从8.3.6([dcl.fct.default])/ 3起:

不得为参数包指定默认参数。

从8.3.6([dcl.fct.default])/ 4起:

在给定的函数声明中,带有默认参数的参数之后的每个参数都应具有在此声明或先前声明中提供的默认参数,或者应为函数参数包。

因此,这允许使用void f(int a = 10, Args ... args)或确实是您的第一个代码段之类的代码。(感谢@TC查找第二句!)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

可以为扩展参数包“填充”默认函数参数吗?

来自分类Dev

组合函数参数包和默认参数

来自分类Dev

我可以为联合的C ++函数设置默认参数吗

来自分类Dev

主函数可以具有默认参数值吗?

来自分类Dev

doctest 可以解析带有默认参数的函数吗?

来自分类Dev

函数可以继承参数吗?

来自分类Dev

我们真的可以将无参数构造函数称为默认构造函数吗?

来自分类Dev

我们真的可以将无参数构造函数称为默认构造函数吗?

来自分类Dev

可以同时使用默认构造函数和参数构造函数吗?

来自分类Dev

是否可以更改PHP函数的默认参数?

来自分类Dev

从默认参数推导参数包

来自分类Dev

我们可以模拟通用参数的“默认参数”吗?

来自分类Dev

C ++为函数参数设置默认参数吗?

来自分类Dev

在Scala中,您可以使匿名函数具有默认参数吗?

来自分类Dev

可以将私有静态成员用作其类的成员函数的默认参数吗?

来自分类Dev

QSignalMapper可以转发函数参数吗?

来自分类Dev

函数参数可以乘以类型吗?

来自分类Dev

可以在函数参数中使用解构吗?

来自分类Dev

PHP可以将带参数的函数定义吗

来自分类Dev

纯虚函数可以有参数吗?

来自分类Dev

您可以使用一等函数将变量设置为等于具有默认参数的函数吗?

来自分类Dev

构造函数默认参数

来自分类Dev

默认范围可以在rails中接受参数吗?

来自分类Dev

我可以使用默认的空参数执行过程吗?

来自分类Dev

默认范围可以在rails中接受参数吗?

来自分类Dev

闭包中的默认参数

来自分类Dev

可以在模板之外使用c ++ 11参数包吗?

来自分类Dev

复制省略在默认函数参数中有效吗?

来自分类Dev

您可以将函数参数结构传递给函数吗?

Related 相关文章

  1. 1

    可以为扩展参数包“填充”默认函数参数吗?

  2. 2

    组合函数参数包和默认参数

  3. 3

    我可以为联合的C ++函数设置默认参数吗

  4. 4

    主函数可以具有默认参数值吗?

  5. 5

    doctest 可以解析带有默认参数的函数吗?

  6. 6

    函数可以继承参数吗?

  7. 7

    我们真的可以将无参数构造函数称为默认构造函数吗?

  8. 8

    我们真的可以将无参数构造函数称为默认构造函数吗?

  9. 9

    可以同时使用默认构造函数和参数构造函数吗?

  10. 10

    是否可以更改PHP函数的默认参数?

  11. 11

    从默认参数推导参数包

  12. 12

    我们可以模拟通用参数的“默认参数”吗?

  13. 13

    C ++为函数参数设置默认参数吗?

  14. 14

    在Scala中,您可以使匿名函数具有默认参数吗?

  15. 15

    可以将私有静态成员用作其类的成员函数的默认参数吗?

  16. 16

    QSignalMapper可以转发函数参数吗?

  17. 17

    函数参数可以乘以类型吗?

  18. 18

    可以在函数参数中使用解构吗?

  19. 19

    PHP可以将带参数的函数定义吗

  20. 20

    纯虚函数可以有参数吗?

  21. 21

    您可以使用一等函数将变量设置为等于具有默认参数的函数吗?

  22. 22

    构造函数默认参数

  23. 23

    默认范围可以在rails中接受参数吗?

  24. 24

    我可以使用默认的空参数执行过程吗?

  25. 25

    默认范围可以在rails中接受参数吗?

  26. 26

    闭包中的默认参数

  27. 27

    可以在模板之外使用c ++ 11参数包吗?

  28. 28

    复制省略在默认函数参数中有效吗?

  29. 29

    您可以将函数参数结构传递给函数吗?

热门标签

归档