問題タブ [auto]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
65651 参照

c++ - auto &&は何を教えてくれますか?

あなたが次のようなコードを読んだ場合

auto&& var = foo();

ここで、fooはタイプの値で返される関数ですT。次にvar、を参照する型右辺値の左辺値ですT。しかし、これは何を意味するのvarでしょうか?それは、私たちがの資源を盗むことを許されているということvarですか?あなたが独占的な所有権を持っていることを伝えるためauto&&にあなたが戻ったときのようにあなたがあなたのコードの読者に何かを伝えるために使うべきである合理的な状況はありますか?unique_ptr<>そして、たとえば、クラスタイプのT&&場合はどうでしょうか。T

auto&&テンプレートプログラミング以外のユースケースがあるかどうかを理解したいだけです。この記事の例で説明されているもののように、ScottMeyersによるUniversalReferencesです。

0 投票する
1 に答える
5233 参照

c++ - 範囲ベースのステートメントが自動&&によって範囲を取得するのはなぜですか?

範囲ベースのforステートメント、§6.5.4で次と同等に定義されています。

ここで、range-initは範囲ベースの2つの形式に対して次のように定義さforれます。

(この節は、他の部分式の意味をさらに指定します)

なぜ__range推定型が与えられるのauto&&ですか?私の理解でauto&&は、式を通過させることにより、式の元の値(左辺値/右辺値)を保持するのに役立つということですstd::forward。ただし、__rangeはどこにも渡されませんstd::forward__range、、、__range.begin()またはのいずれかとして、範囲イテレータを取得する場合にのみ使用されますbegin(__range)

ここで「ユニバーサルリファレンス」を使用する利点は何auto&&ですか?auto&十分ではないでしょうか?

注:私が知る限り、提案はの選択について何も述べていませんauto&&

0 投票する
5 に答える
5124 参照

c++ - プライベート タイプで auto を使用できるのはなぜですか?

次のコードがコンパイルされて実行されることに少し驚きました (vc2012 & gcc4.7.2)

このコードが正常にコンパイルされるのは正しいですか? そして、なぜそれは正しいのですか?auto(予想どおり)名前を使用できないのに、プライベート型で使用できるのはなぜですか?

0 投票する
4 に答える
23361 参照

c++ - 自動変数とそのタイプ

投稿で、イテレータを使用してコンテナから要素を削除する方法を見つけました。反復中:

autoタイプなしで使用されるのはなぜauto next = it;ですか?

私はC++11ではなくVS10を使用しています!

0 投票する
3 に答える
550 参照

c++ - 「自動復帰」関数でdecltypeが必要なのはなぜですか?

このコードを検討してください:

非常に簡単な質問があります。なぜ、2 番目のメソッド (を使用しないメソッド) とは異なりdecltype()、後置の戻り値の型を挿入する必要があるのですか?add()add()

0 投票する
2 に答える
2132 参照

c++ - 自動の無効な使用

このコードでは:

gcc 4.7.1からエラーが発生します:

なぜ何かアイデア?それは正しくコンパイルされるべきではありませんか?

0 投票する
2 に答える
391 参照

c++ - auto を使用したプライベート タイプの公開: どこで役立つのでしょうか?

この質問autoでは、プライベート タイプを次のように公開する理由について説明しました。

C++11標準では完全に問題ありません。私がまだ得ていないのは、このイディオムが実際のアプリケーションでどのように役立つかということです。 このイディオムを効果的に使用できる問題はありますか、それともキーワードの「奇妙な」副作用と見なす必要がありますか?

0 投票する
1 に答える
4732 参照

c++ - ISO C ++は、自動反復子の型のない「it」の宣言を禁止していますか?

次の6行があります。

VS2012 では完全に正常にコンパイルされますが、centOS6 の GCC では次のエラーが発生します。

rcp_amxinfo は次のように定義されています。

Linux でこれらのエラーを解決するにはどうすればよいですか?

0 投票する
0 に答える
163 参照

c++ - auto で使用するための C++11 範囲ベース

重複の可能性:
範囲ベースの for ループでユニバーサル参照を使用する利点は何ですか?

a の要素を反復処理して読み取るには、次の C++11範囲ベースの for with withの使用法が正しいvector<int>と思います。auto

コンテナーに格納されている要素が単純な整数ではなく、たとえば s のような「重い」ものである場合、範囲ベースの for + の正しい使用法でstd::stringそれらを反復処理することは次のとおりです。vector<string>auto

を使用すると無駄なディープ コピーが回避され、ループ コードはベクターの内容を監視しconst &ているだけなので問題ありません。

これまでの私の理解は正しいですか?

autoここで、別の形式のin range-based for loops:を使用するコードを見ましたauto&&

この使用法は何に適していますか?&&範囲ベースの for ループで右辺値参照 ( ) を使用する利点は何ですか? どのような場合にこのスタイルを使用する必要がありますか?

0 投票する
0 に答える
121 参照

c++ - 末尾の戻り型の構文は、すべての関数のデフォルトの構文にする必要がありますか?

重複の可能性:
代替関数構文

複雑な関数テンプレートでは、パラメーターで使用するためにC ++ 11の末尾の戻り型構文が必要にdecltypeなる場合があります。そうしないと、スコープに入るのが遅すぎます。

通常の関数であっても、今後は常にこの新しい構文を使用する方が一貫性がありませんか?

次に、最新のコードでは2つではなく1つの関数構文を処理するだけで済み、暗黙のintまたは暗黙のusing宣言を非推奨にしたのと同じように、古い構文を非推奨にすることができます。

新しい構文をより魅力的にするために、より適切なauto名前に置き換えることができます。

そして突然、の署名はmain関数型プログラマーにとって非常に魅力的に見えます。

私は何かを見落としていますか?末尾の戻り型の構文は、私が考えていなかった方法で劣っていますか?