我的问题是,为什么不能推导出函数的返回类型? ,或更简单地说明为什么以下代码会出错:
auto myfunc(int a)
{
int a = 12;
return a;
}
为什么这不是有效的?
答案 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