問題タブ [token-name-resolution]

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 に答える
699 参照

java - Javaコンパイラはインポートされていない名前をどのように解決しますか

パッケージのXJava コンパイル ユニットで型を使用し、コンパイル ユニット自体で定義されておらず、直接インポートされていないことを考慮してください。Javaコンパイラはどのように効率的に解決しますか? 存在する可能性がいくつかあります。foo.barXXX

  1. Xスターインポート経由でインポートされる可能性がありますa.b.*
  2. Xコンパイル単位と同じパッケージに存在する可能性があります
  3. X言語タイプである可能性があります。つまり、次の場所に存在しますjava.lang

私が見る問題は特に(2.)です。はパッケージ プライベート タイプである可能性があるため、という名前のコンパイル ユニットに存在するX必要さえありません。したがって、コンパイラはクラスパスのすべてのエントリを調べて、パッケージ内のクラスを検索する必要があります。次に、パッケージ内のすべてのクラスを読み取って、が含まれているかどうかを確認する必要があります。XX.javafoo.barfoo.barX

それは非常に高価に聞こえます。特に、単一のファイルのみをコンパイルする場合、コンパイラは type を見つけるためだけに数十のクラス ファイルを読み取る必要がありますX。多くのスター インポートを使用する場合、この手順を多くの型に対して繰り返す必要があります (もちろん、クラス ファイルを 2 回読み取ることはありません)。

では、コンパイル プロセスを高速化するために、同じパッケージから型もインポートすることをお勧めしますか? または、見つけられなかったインポートされていない型を解決するためのより高速な方法はありXますか?

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

c++ - オーバーロードされた演算子に関して、ADL または命名の衝突に関して異なる規則はありますか?

この例が私の質問を最もよく表していると思います:

私は常にオーバーロードされた演算子を「呼び出し構文」を除いて関数と同じであると見なしてきました。上記の違いに気付きましたが、ADL または名前検索ルールに違いがあります (どちらかわかりません)。

bool operator==(const C& c, const C& x)が見つかったのに が見つからない理由を誰か説明できますかbool f(const C& c, const C& x)?

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

c++ - getenv() が std:: なしで解決された名前を取得できるのはなぜですか?

getenv() には、ヘッダー ファイルに含めることができる C++ 実装があります。したがって、名前空間 std のメンバーです。ただし、getenv() 関数は、std::getenv() がなくてもコード内で正しく解決できます。つまり、フォロー プログラムをエラーや警告なしでコンパイルして実行できます。では、名前空間 std の名前メンバーとしての getenv() が std:: なしで解決できるのはなぜですか? 私の OS とコンパイラは、それぞれ Ubuntu 12.04 i386 と g++ 4.8.1 です。

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

c++ - C++ は静的な名前解決または動的な名前解決を使用しますか?

私はウィキペディア( Name resolution WIKI )で「名前解決」について読んでおり、C ++が「静的名前解決」を使用していることが示されています。それが本当なら、動的な名前解決を使用せずに C++ がどのように「ポリモーフィズム」を提供するかを理解できませんでした。

C ++が「静的名前解決」または「動的名前解決」を使用しているかどうか、誰でも答えてください。静的である場合、C++ がポリモーフィズムを提供する方法についても説明できますか。

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

c++ - C++ カスタム ヘッダー ファイル - 構文エラー C2061: 識別子

シンタックス エラー C2061 についてしばらく調べていたところ、ヘッダー ファイルの循環依存関係が原因であることが多いことがわかりました。ただし、ファイルでこれを解決する必要があったと思いますが、引き続き問題が発生します。

アーチ

Node.h

ヘッダー ファイルは両方とも、対応する cpp ファイルに含まれています。この問題に関するヘルプは大歓迎です!

編集:以下の完全なエラーメッセージ

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

c++ - テンプレート引数として渡された派生クラスで定義された型を参照する方法は?

次の例を検討してください。

GCC でコンパイルすると、次のエラーが発生します。

が定義されている場合にコンパイラがエラーを出すのはなぜB::Cですか? また、その修正方法は?