私はループベースのrangedベースのautoはオプションのキーワードですか?
"there is no need for
auto
inside range-based for loops. It would not be ambiguous in the language if we were to remove it."
が真の文ということです、誰かが一度私に言って思い出しますか?
フォローコードは有効なC++構文ですか?
for (elem : range){...}
私は、これはすでに有効な構文だったと仮定していたが、私は
clang++ --std=c++1z
でコンパイルに行ったとき、私は次のエラーが示された。
range-based for loop requires type for loop variable
for (elem: range){
コンパイラはまだレンジ・としてこれを認識し、 forループを使っているので、なぜ型も派生できないのですか?
これは、C++での導入のために議論された17。この提案が理にかなっているためには、構文が明白なままであるという主張がなされなければならなかった。これは引用がするものである。しかし、現在の状況はどういうものか分かりません。 – 5gon12eder
@ 5gon12eder:私はそれが多くの懸念を抱いていたと思っています。特に、名前のシャドーイングに関する質問(例えば、 'elem'が既にスコープ内の名前であるかどうか、誰かが後でそれを追加するかどうかなど)。 –
この構文はStephan Tこれは '-std = C++ 1z'の一部として実装されましたが、提案が却下されたときにはおそらく(おそらく) – Praetorian