2016-09-26 7 views
1

を返す私は、関数が配列を返すことはできません知っているが、この関数宣言機能は、アレイ

auto fun(/*...*/) -> int [2] 

は、コンパイルを渡すことができます。なぜ!?

+3

バギーコンパイラ:あなたは配列を返す関数を定義しようとすると、この陽気なエラーメッセージを見ることができますか?どのコンパイラを使用しているのですか? – juanchopanza

+0

私はg ++ 11ルールでMinGWを使用します。 – tocrafty

答えて

1

実際、関数は値によってプレーンな配列を返すことはできません。

このような戻り値の型の宣言は不適切です。コンパイラが警告なしでそれを受け入れると、コンパイラは厳密に標準に準拠しません。おそらくバグか言語拡張です。

このバグはg ++ - 6.1では再現可能です。

error: cannot convert 'int [2]' to 'int [2]' in return