我的問題是,爲什麼不能推導函數的返回類型? ,或者更簡單的爲什麼下面的代碼給出錯誤:爲什麼不能自動返回函數的類型?
auto myfunc(int a)
{
int a = 12;
return a;
}
爲什麼這是無效的?
我的問題是,爲什麼不能推導函數的返回類型? ,或者更簡單的爲什麼下面的代碼給出錯誤:爲什麼不能自動返回函數的類型?
auto myfunc(int a)
{
int a = 12;
return a;
}
爲什麼這是無效的?
,它在C++ 14中的功能,你可以用GCC 4.9試試吧或者通過設置-std = C++ 1y標誌進行叮噹聲。
活生生的例子:http://coliru.stacked-crooked.com/a/00b8b708d6f0f45b
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3638.html
它允許在C++ 14中(並且被稱爲自動返回類型推導),您現在可以在編譯器中使用std=c++1y
來啓用它。
如果你的編譯器支持C++ 11,但不是C++ 14可以使用尾隨返回類型:
auto myfunc(int a) -> int
{
int b = a;
return a;
}
只是精度:它不是即將到來,* ISO/IEC 14882日期:2014(E)*在2014年8月和所有主要的編譯器發出支持大部分的功能爲一會兒。 – Drop 2015-01-04 14:46:59