問題タブ [unqualified-name]
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++ - C++ 非修飾ルックアップ
次のコードがあります。
gtest operator<< & PrintTo の動作を模倣して、std 名前空間に何かを追加することは許可されていないため、ADL では実行できない一部の std クラスの動作をオーバーロードできます。ただし、通常の関数でそれを実行しようとするとf()
、のオーバーロードのf(mystd::A())
定義が遅すぎると見なされます ( f()
gccのテンプレート定義にコメントがある場合note: ‘int f(const mystd::A<int>&)’ declared here, later in the translation unit
)
問題は、なぜ と の動作が異なるのかということoperator-()
ですf()
。
c++ - エラー: 'const' の前に unqualified-id が必要です
このエラーに関するいくつかの質問を見たことがありますが、C++ でクラスを作成した経験があまりないため、回答の意味が実際にはわかりません。また、このコードは私が書いたものではないことも指摘しておく必要があります。
タイトルに記載されているエラーが表示されます。このヘッダー ファイルから発生していると思われますが、エラーの意味と修正方法がわかりません。
ファイルは次のとおりです。
および完全なエラー:
誰かが私にそれが何を意味し、何が起こっているのかを説明できれば、本当に感謝しています、ありがとう!
c++ - 修飾名のオーバーロード解決
次の関数呼び出しを検討してください。
11.3.1.1.1、パラグラフ 3 [over.call.func] ( N4778 ) は、このケースをカバーしています。
修飾されていない関数呼び出しでは、名前は
->
or.
演算子によって修飾されず、より一般的な形式のprimary-expressionを持ちます。名前は、関数呼び出しでの名前検索の通常のルールに従って、関数呼び出しのコンテキストで検索されます...
ここで、は、またはによって修飾されていないという意味で、修飾されていfoo::bar
ない名前です。したがって、この段落が適用されます。ここで、「~のコンテキストで検索された」というフレーズの意味は、6.4、パラグラフ 2 [basic.lookup] で説明されています。->
.
「式のコンテキストで検索された」名前は、その式が見つかったスコープで非修飾名として検索されます。
ただし、 name lookup の領域ではfoo::bar
修飾名です。つまり、この段落の組み合わせは基本的に、修飾名は非修飾名検索の規則によって検索されるということを示しています。しかし、修飾されていない名前のルックアップがより狭いスコープ、つまりtoに再帰的に入ることができるとは思いません。これは欠陥ですか?foo::bar
foo
bar
c++ - Mongoose - 標準 C++ ライブラリ ファイルをインクルードする際のエラー
mongoose を使用して C++ で HTTP サーバーを構築していますが、プログラムに他のファイルを含めようとするとエラー メッセージが表示されます。
これは、プログラムに次のファイルを含めようとするたびに発生します。
これらのファイルの一部をコメントアウトして、問題の原因となっているファイルの 1 つに絞り込もうとしましたが、それらのいずれかがエラーを引き起こしているようです。興味深いことに、string.h ではエラーは発生しません。