为什么不能自动返回一个函数类型?

时间:2015-01-04 14:42:12

标签: c++ c++11 auto

我的问题是,为什么不能推导出函数的返回类型? ,或更简单地说明为什么以下代码会出错:

auto myfunc(int a)
{
int a = 12;
return a;
}

为什么这不是有效的?

2 个答案:

答案 0 :(得分:2)

在C ++ 14中允许(并称为自动返回类型推导),您现在可以使用std=c++1y在编译器中启用它。

如果编译器支持c ++ 11但不支持c ++ 14:

,则可以使用尾随返回类型
auto myfunc(int a) -> int
{
int b = a;
return a;
}

答案 1 :(得分:2)

这是C ++ 14中的一个功能,您可以通过设置-std = c ++ 1y标志来尝试使用GCC 4.9或clang。

直播示例:http://coliru.stacked-crooked.com/a/00b8b708d6f0f45b

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3638.html