私の質問は、なぜ関数の戻り値の型を推測できないのですか?次のコードでエラーが発生する理由を簡単に説明してください。なぜ自動的に関数の型を返すことができないのですか?
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フラグを設定してclangします。
ライブ例: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ではなく++ 14 Cをサポートしている場合
あなたは末尾の戻り値の型を使用することができます。
auto myfunc(int a) -> int
{
int b = a;
return a;
}
だけ精度:* 2014年8月に発行され、すべての主要なコンパイラはのためのITのほとんどの機能をサポートしていた2014(E):それは* ISO/IEC、14882を間近ではないですしばらく。 – Drop