返回类型推导的类方法?C ++ 1y

蒂姆·塞吉因(Tim Seguine)

是c ++ 14中的成员函数允许返回类型推导,还是自由函数仅允许返回类型推导?

我问是因为我隐式地认为它会工作,但是在gcc 4.8.1中,我收到一个内部编译器错误(“在gen_type_die_with_usage中”)。第一次遇到这样的神秘错误,所以我有点怀疑。从那时起,我知道他们已经更改了规范。

为了清楚起见,这对我有用:

auto foo() {return 5;}

但这不是:

class Bar{
auto baz() {return 5;}
}

标准草案中允许这样做吗?

亚伦曼

是的,根据文件n3582,该标准应该允许它这是本文的一个例子。

严格要求不需要使用自动返回类型的非定义函数声明,但是对于喜欢在类之外定义成员函数的编码样式很有用:

    struct A {
      auto f(); // forward declaration
    };
    auto A::f() { return 42; }

如果在这种情况下允许它,则在其他情况下也应该有效。允许它也是更正交的选择。总的来说,我相信如果将两个功能组合在一起可以起作用,那么它应该起作用。

根据@bamboon的评论,“从gcc 4.9开始仅支持返回类型推导。” 这样就可以解释为什么您没有它。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

CRTP和c ++ 1y返回类型推导

来自分类Dev

C ++ 1y自动功能类型推导

来自分类Dev

C ++:元组列表C ++ 11 / 1y

来自分类Dev

C ++ 1y / 14:自动变量模板?

来自分类Dev

C ++ 1y的内存管理中的定型释放功能

来自分类Dev

在qt(mingw)中启用c ++ 1y

来自分类Dev

在C ++ 11或C ++ 1y中对非类型模板参数包进行排序?

来自分类Dev

c ++ 11 / 1y lambda函数的类型签名是什么?

来自分类Dev

在C ++ 1y中是否需要公共的类typedef?

来自分类Dev

gcc编译选项std = c ++ 1y和std = c ++ 14之间的区别

来自分类Dev

此递归多态C ++ 1y lambda调用有什么问题?

来自分类Dev

C ++ 1y没有从std :: bind到std :: function的可行转换

来自分类Dev

C ++ 1y中的内存管理中的大小调整分配功能

来自分类Dev

c ++ 1y将允许派生类对基类变量进行类内初始化吗?

来自分类Dev

C ++ 1y / C ++ 14:将静态constexpr数组转换为非类型模板参数包?

来自分类Dev

C ++ 14 / 1y:“ operator +必须带有一个或两个参数”的标准引用?

来自分类Dev

C ++ 1y / C ++ 14:不允许在常量表达式中分配对象的生存期吗?

来自分类Dev

C ++ 1y / C ++ 14:不允许在常量表达式中分配对象的生存期吗?

来自分类Dev

在C ++ 1y中,'constexpr'非静态成员函数不会隐式地成为'const';添加“ const”以避免行为改变

来自分类Dev

了解有关C ++ 1y的提案N3650中有关可恢复功能的示例

来自分类Dev

-O1 / 2/3,带有-std = c ++ 1y / 11/98-如果包含<cmath>,我会收到错误消息:在此范围内未声明'_hypot'

来自分类Dev

自动推导方法的返回类型

来自分类Dev

Java动画,以1x,1y的频率更新动画

来自分类Dev

正则表达式匹配 1Y 但不匹配 Javascript 中的 1YY

来自分类Dev

C ++ 14中的返回类型推导

来自分类Dev

C ++ 03中的函数返回类型推导

来自分类Dev

基于输入参数的C ++返回类型推导

来自分类Dev

C ++ 14中的返回类型推导

来自分类Dev

C ++ 14中的返回类型推导

Related 相关文章

  1. 1

    CRTP和c ++ 1y返回类型推导

  2. 2

    C ++ 1y自动功能类型推导

  3. 3

    C ++:元组列表C ++ 11 / 1y

  4. 4

    C ++ 1y / 14:自动变量模板?

  5. 5

    C ++ 1y的内存管理中的定型释放功能

  6. 6

    在qt(mingw)中启用c ++ 1y

  7. 7

    在C ++ 11或C ++ 1y中对非类型模板参数包进行排序?

  8. 8

    c ++ 11 / 1y lambda函数的类型签名是什么?

  9. 9

    在C ++ 1y中是否需要公共的类typedef?

  10. 10

    gcc编译选项std = c ++ 1y和std = c ++ 14之间的区别

  11. 11

    此递归多态C ++ 1y lambda调用有什么问题?

  12. 12

    C ++ 1y没有从std :: bind到std :: function的可行转换

  13. 13

    C ++ 1y中的内存管理中的大小调整分配功能

  14. 14

    c ++ 1y将允许派生类对基类变量进行类内初始化吗?

  15. 15

    C ++ 1y / C ++ 14:将静态constexpr数组转换为非类型模板参数包?

  16. 16

    C ++ 14 / 1y:“ operator +必须带有一个或两个参数”的标准引用?

  17. 17

    C ++ 1y / C ++ 14:不允许在常量表达式中分配对象的生存期吗?

  18. 18

    C ++ 1y / C ++ 14:不允许在常量表达式中分配对象的生存期吗?

  19. 19

    在C ++ 1y中,'constexpr'非静态成员函数不会隐式地成为'const';添加“ const”以避免行为改变

  20. 20

    了解有关C ++ 1y的提案N3650中有关可恢复功能的示例

  21. 21

    -O1 / 2/3,带有-std = c ++ 1y / 11/98-如果包含<cmath>,我会收到错误消息:在此范围内未声明'_hypot'

  22. 22

    自动推导方法的返回类型

  23. 23

    Java动画,以1x,1y的频率更新动画

  24. 24

    正则表达式匹配 1Y 但不匹配 Javascript 中的 1YY

  25. 25

    C ++ 14中的返回类型推导

  26. 26

    C ++ 03中的函数返回类型推导

  27. 27

    基于输入参数的C ++返回类型推导

  28. 28

    C ++ 14中的返回类型推导

  29. 29

    C ++ 14中的返回类型推导

热门标签

归档