私は最近auto
、C ++ 11で、コンパイラが型を推測する必要のある変数をマークするためにキーワードを選択した理由を疑問に思いました。
auto x = 1;
以来
var
他のプログラミング言語(C#、Scala、JavaScriptなど)でより一般的なようです。auto
ブレークの下位互換性の新しいセマンティクスを理解している限り(これはめったに使用されませんでしたが、C ++の以前のリビジョンでは異なる意味を持ちました。たとえばここを参照)
選択する特別な理由があるかどうかauto
(var
他のキーワードが有利かどうか)を尋ねたかったのです。C ++ 11標準がリリースされる前に、この問題について具体的な議論はありましたか?
また、レガシーC ++コードをC ++ 11コンパイラで再コンパイルするときに注意すべき非互換性はありますか?
auto
対var
の質問は、あなたのテキストの90%は何を意味しており、その質問には、決定的な結果を持っていません。(私は近くに投票したものではないんだけれども)
auto
var
C#で導入される前にC ++向けに提案されたため、C#がautoを使用しない理由は疑問です。varはJavaScriptとScalaで異なる意味を持っています
auto
後方互換性を破壊する可能性がありますが、11より前のコードでキーワードが使用されるvar
頻度と比較して変数名として使用される頻度に応じてauto
、委員会は、新しいものを導入するより劇的に互換性を破壊しないと意見を述べたかもしれませんキーワードだろう。