問題タブ [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 投票する
1 に答える
6861 参照

c++ - 自動変数を使用してイテレータタイプを選択するにはどうすればよいですか?

私はstd::unordered_mapを持っています

findを使用して定数イテレータを取得したい。c++03では

c ++ 11では、代わりにautoを使用してテンプレートを削減したいと思います

これはconst_iteratorまたはイテレータになりますか?コンパイラはどちらを使用するかをどのように決定しますか?constを選択するように強制する方法はありますか?

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

c++ - C++11 の auto キーワードを派生型に自動的に書き換える

奇妙な質問かもしれませんが、大量の C++11 コードが与えられた場合に、自動型付けされた変数のすべての型を派生させ、それらの派生型でコードを書き換えるソフトウェアはありますか? また、イニシャライザリストの場合は?

その理由は、主に osx との移植性のために、コードの下位互換性のあるバージョン (非 C++11) を提供したいからです。自動入力と初期化リストは、コードを読みやすくするために最もよく使用する機能ですが、手動で削除することはできません。これは実際にコンパイラが自動型付けされた変数に対して行うことなので、あまりにも大げさではないでしょうか?

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

c++ - プリプロセッサマクロなしでgetter-setterの「仮想」デフォルト実装を定義することは可能ですか?

getter-setterのデフォルトの実装にテンプレートを使用することができます。

たとえば、http://www.kirit.com/C%2B%2B%20killed%20the%20get%20%26%20set%20accessors/A%20simple%20meta-accessor。最も重要なことは、このようなセッターまたはゲッターのデフォルトの動作をオーバーライドする場合、セッターゲッターの呼び出し構文はメソッドの呼び出しと同じであるため、「クライアント」コードを変更せずに簡単にこれを実行できることです。

どちらの場合も、an_intはoperator()またはan_objectのメソッドを持つオブジェクトにすることができます。オーバーライドした後、「クライアント」コードで再コンパイルが必要になります。

しかし、プリプロセッサマクロなしでgetter-setterの「仮想」デフォルト実装を定義することは可能ですか?つまり、ここで重要なことは、オーバーライド中に「クライアント」コードを再コンパイルする必要がないということです。もちろん、プリプロセッサで行うことは可能ですが、もっとエレガントな解決策はありますか?

私のC++03の知識は不可能ですが、誰かがアイデアを持っているのでしょうか、それともC ++ 11で可能でしょうか?


「DavidRodríguez--dribeas」に対する回答:次のようなもの:

「クライアント」コードを再コンパイルすることなく、派生クラスでオーバーライドできます。

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

c++ - C++11 auto および size_type

を次のように使用するとしますauto

iC++ がとして推定するのが理想的ですstd::vector<int>::size_typeが、 の初期化子だけiを見ると、整数が表示されます。iこの場合、推定される型は何ですか? これは適切な使用法autoですか?

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

c++ - この状況でリターンタイプを指定するためにdecltype(x)に入れる構文は何でしょうか

std::vector別のコンテナにイテレータを作成する次の関数があります。

私がしたいのはこれです:

これを機能させるために何をすればよいxですか?

試行したが失敗した試行:

(また、私はこれに関する専門家ではないので、他の提案、コメントを歓迎します!ありがとう。)

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

c++ - リストのマップを反復処理しますか?

map<string, list<int> >リストを反復処理して各番号を出力したいがあります。const_iterator と iterator の間の変換に関するコンパイル エラーが発生し続けます。私はこれで何が間違っていますか?

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

c++ - 「auto const」と「const auto」は同じですか?

と の間に意味的な違いはありauto constますconst autoか、それとも同じことを意味しますか?

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

c++ - c++0xでのautoとdecltypeの違い

autoとdecltypeに問題があります。

上記のコードはGCC4.7でうまく動作します。'new auto(a [0] * b [0])'を使用して、タイプa [0] * b [0]にメモリを割り当てることはできますか?そして、この場合、decltypeとautoの違いを区別することはできません。

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

c++ - C++11 で decltype() を使用するとエラーが発生する (gcc 4.7.0 で不透明なエラー メッセージを作成する)

次のコードを使用します(元のコードの煮詰めたバージョン)

gcc 4.7.0 で次のエラーが発生します。

test.cc: 関数内decltype (std::abs(x.diff(y))) dist(const A<X>&, const A<Y>&)[with X = double; Y = double; decltype (std::abs(x.diff(y))) = double]':

test.cc:5:5: エラー:double A<double>::aプライベートです

強調表示された行: エラー: このコンテキスト内

このエラー メッセージは明らかにあまり役に立ちません。コードにエラーはありますか? それともコンパイラの問題ですか?

EDIT1 : フレンド宣言は役に立ちませんでした。

EDIT2 : 使用を避けることA<Y>::aも役に立ちませんでした。

EDIT3 : EDIT2 と合わせて、最終的に問題を修正しまし。の定義の にはforが必要です。これは、最初のコンテキストでプライベートな を使用します。decltype()dist()decltype()A<X>::diff()A<X>::a

EDTI4 : Rook の使用の提案typename std::common_type<X,Y>::typeも有効です!

EDIT5 :しかし、この質問に対するJonathan Wakelyの回答を参照してください

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

c++ - c++autoは型に名前を付けません

コードでキーワードautoを使用しています

次のコマンドでコンパイルすると、これらのエラーが発生します

-std = c ++ 0xを使用すると、トリックが実行されるはずです。なにが問題ですか ?