問題タブ [argument-dependent-lookup]

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 投票する
2 に答える
189 参照

c++ - カスタムコンテナイテレータは、ADLが名前空間stdを考慮することを保証しますか?

これを実際のコードで使用するつもりはありません。約束します。

標準では、関数の引数が型であり、組み込み型ではないstd場合に名前空間が見つかることが保証されていますか?container::iteratorcontainer::iteratortypedef

例えば

言い換えると、イテレータクラスはstd、ADLで考慮されないような名前空間で定義できますか?

前もって感謝します。

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

c++ - std :: pairを専門とするために、演算子>>をどこで定義する必要がありますか?

次のプログラムを検討してください。

ADLが名前空間stdで演算子>>を検出するとすぐに、stdで検出された演算子が実行可能な候補であったかどうかに関係なく、グローバルスコープを考慮しなくなるため、これはコンパイルに失敗します。これはかなり不便です。演算子>>の宣言を名前空間std(技術的に違法)に配置すると、コードは期待どおりにコンパイルされます。pointstd名前空間のテンプレートの特殊化としてタイプ定義するのではなく、独自のクラスを作成する以外に、この問題を解決する方法はありますか?

前もって感謝します

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

air - AIR: Adob​​e Air Debug Launcher が動作を停止しました...ログはありますか?

AIR SDK ランタイム 2.7 を搭載した Windows 7 64 ビット ホーム ファミリで AIR デバッグ ランチャー (adl) に問題があります。クラッシュすることがあり、それが私のソフトウェアによるものかどうかを理解する可能性はありません。クラッシュした理由を知るためにログを取得する方法を知っている人はいますか? クラッシュすると、デバッガーが消えてしまい、ソフトウェアにバグがあった場合、どこにバグがあったのかわかりません...

win7 の別の SDK でソフトウェアをテストしてきましたが、まだいくつかの adl クラッシュがありました。ソフトウェアは winXP で正しく動作しています。win7 と AIR に関係があると思いますが、何が起こっているのかについての情報を見つけるにはどうすればよいですか?

ヒントをありがとう...


Windows のクラッシュ ダンプ ファイルを見つけることができました。次に、windbg をダウンロードします。そして、エアデバッガーランチャーのデバッグを開始しました...しかし、行き詰まりました...シンボルファイルなしではデバッグがうまくいきません...それ以上のことはできないと思います。このエラーは、整数をユニコード文字列に変換しようとしたために発生しましたが、この関数が呼び出された理由、誰によって、いつ呼び出されたのかわかりません...

クラッシュしないこともあります。

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

c++ - GCC、Clang、およびIBMは、テンプレートパラメーターに依存する名前ルックアップを実行する方法について意見が分かれています。どちらが正しいですか?

IBMのWebサイトで見つけたこの例を考えてみましょう。

何を印刷しますか?

  • 私がこの例を採用したIBMのドキュメントは、ここから入手でき、次のように出力されます。

    これの理論的根拠は、テンプレートパラメータに依存する名前ルックアップがのインスタンス化の直前に実行されるi()ため、は検出されますh(double)が、は検出されないということh(int)です。

  • GCC 4.4.1を使用してコンパイルすると、次のように出力されます。

    GCCは、他のすべてがコンパイルされた後、テンプレート内のテンプレートパラメータに依存する名前を検索しているように見えるため、との両方h(double)を検出h(int)し、後者を優先します。

  • Clang 2.8を使用してコンパイルすると、コンパイルに失敗します。コンパイラエラーは次のとおりです。

    Clangは、テンプレートが宣言された時点でテンプレート内のテンプレートパラメータに依存する名前を検索しているように見えるため、どちらh(double)も検出されませんh(int)

どちらが正しいですか?

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

c++ - タプルから要素を取得する

重複の可能性:
ADL が関数テンプレートを見つけられないのはなぜですか?

呼び出しgetは、引数依存のルックアップを呼び出していないようです:

g++ 4.6.0 は次のように述べています。

Visual Studio 2010 は次のように述べています。

なんで?

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

c++ - ADL中に関数テンプレートの優先度を最も低くするにはどうすればよいですか?

foo呼び出しに一致するものが他にまったくない場合にのみ適用できる汎用バージョンの関数を提供したいという問題があります。次のコードを変更して、よりもlast_resort::foo一致しないようにするにはどうすればよいですか?の定義を変更する必要がなく、の引数の型を保持する解決策を見つけたいと思います 。derived::typebase::foobarlast_resort::foo

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

c++ - ADL対応のトレーリングリターンタイプ、またはnoexcept仕様を作成するにはどうすればよいですか?

コンテナテンプレートなどを書いていると想像してみてください。そして、それに特化する時が来ましstd::swapた。善良な市民として、私は次のようなことを行うことでADLを有効にします。

これは非常にきちんとしていて、すべてです。例外仕様を追加したいまで。swapのスワップがであるnoexcept限り、私のはTですnoexcept。だから、私は次のようなものを書いているでしょう:

問題は、 ADLで発見されたまたはswapである必要があるということです。これをどのように処理しますか?swapstd::swap

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

c++ - 「引数依存のルックアップ」(別名ADL、または「ケーニッヒルックアップ」)とは何ですか?

引数依存のルックアップとは何かについての良い説明は何ですか?多くの人がそれをケーニッヒルックアップとも呼んでいます。

できれば知りたいのですが:

  • なぜそれは良いことですか?
  • なぜそれは悪いことですか?
  • それはどのように機能しますか?
0 投票する
1 に答える
699 参照

linux - AIR Linux - ADT が AIR ランタイムのロードに失敗しました

ubuntuにair-sdkを追加したところ、adlは機能していますが、adtを使用しようとすると、次のようになります。

AIR ランタイムの読み込みに失敗しました

これで何ができますか?

.air ファイルから .dbm へのネイティブ インストーラーを作成するには、adt が必要です

"adt -package -target native my-app-name.dbm my-app-name.air"

air-sdk を変更する前は、常に問題なく動作していました。

前もって感謝します

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

c++ - テンプレートの修飾された名前と修飾されていない名前のルックアップの動作が異なる

このコードはどのように動作する必要がありますか?関数で修飾名を使用すると、オーバーロードを無視してジェネリック関数を呼び出しcall_read()ます。修飾されていない名前を使用すると、最初にオーバーロードが呼び出され、次に汎用バージョンが呼び出されます。違いは何ですか?GCCのバグですか?

また、基本的なタイプでは動作が異なることに気づきました。以下のコードを参照してください

オーバーロードされた関数を2回呼び出すことになっていますが、そうではありません。ここで結果を参照して くださいhttp://codepad.org/iFOOFD52