問題タブ [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.
c++ - 自動変数を使用してイテレータタイプを選択するにはどうすればよいですか?
私はstd::unordered_mapを持っています
findを使用して定数イテレータを取得したい。c++03では
c ++ 11では、代わりにautoを使用してテンプレートを削減したいと思います
これはconst_iteratorまたはイテレータになりますか?コンパイラはどちらを使用するかをどのように決定しますか?constを選択するように強制する方法はありますか?
c++ - C++11 の auto キーワードを派生型に自動的に書き換える
奇妙な質問かもしれませんが、大量の C++11 コードが与えられた場合に、自動型付けされた変数のすべての型を派生させ、それらの派生型でコードを書き換えるソフトウェアはありますか? また、イニシャライザリストの場合は?
その理由は、主に osx との移植性のために、コードの下位互換性のあるバージョン (非 C++11) を提供したいからです。自動入力と初期化リストは、コードを読みやすくするために最もよく使用する機能ですが、手動で削除することはできません。これは実際にコンパイラが自動型付けされた変数に対して行うことなので、あまりにも大げさではないでしょうか?
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」に対する回答:次のようなもの:
「クライアント」コードを再コンパイルすることなく、派生クラスでオーバーライドできます。
c++ - C++11 auto および size_type
を次のように使用するとしますauto
。
i
C++ がとして推定するのが理想的ですstd::vector<int>::size_type
が、 の初期化子だけi
を見ると、整数が表示されます。i
この場合、推定される型は何ですか? これは適切な使用法auto
ですか?
c++ - この状況でリターンタイプを指定するためにdecltype(x)に入れる構文は何でしょうか
std::vector
別のコンテナにイテレータを作成する次の関数があります。
私がしたいのはこれです:
これを機能させるために何をすればよいx
ですか?
試行したが失敗した試行:
(また、私はこれに関する専門家ではないので、他の提案、コメントを歓迎します!ありがとう。)
c++ - リストのマップを反復処理しますか?
map<string, list<int> >
リストを反復処理して各番号を出力したいがあります。const_iterator と iterator の間の変換に関するコンパイル エラーが発生し続けます。私はこれで何が間違っていますか?
c++ - 「auto const」と「const auto」は同じですか?
と の間に意味的な違いはありauto const
ますconst auto
か、それとも同じことを意味しますか?
c++ - c++0xでのautoとdecltypeの違い
autoとdecltypeに問題があります。
上記のコードはGCC4.7でうまく動作します。'new auto(a [0] * b [0])'を使用して、タイプa [0] * b [0]にメモリを割り当てることはできますか?そして、この場合、decltypeとautoの違いを区別することはできません。
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>&)
[withX = 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の回答を参照してください
c++ - c++autoは型に名前を付けません
コードでキーワードautoを使用しています
次のコマンドでコンパイルすると、これらのエラーが発生します
-std = c ++ 0xを使用すると、トリックが実行されるはずです。なにが問題ですか ?