問題タブ [ambiguous-call]
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++ - このような関数のオーバーロードによるあいまいさを解決するにはどうすればよいですか?
次のようなコードがあります。
関数の両方のオーバーロードがより効率的であるfoo
ため、関数のオーバーロードが必要ですが、引数としてリテラル定数を使用することはできず、リテラル定数に対しては機能しますが、ほど効率的ではありません。しかし、両方の関数を定義すると、 が実行されるタイミングがあいまいになります。foo(T&)
foo(T)
foo(T&)
c.foo(a)
エラー: オーバーロードされた 'foo(int&)' の呼び出しがあいまいです
どうすればこの問題を克服できますか?
java - Java: オーバーロードされたコンストラクター間の選択
この質問に従って、あいまいなオーバーロードされたコンストラクターから選択しようとすると、Java は「最も具体的な」オプションを選択します。この例では:
それは印刷されます
"地図"
ただし、「最も具体的」とはどういう意味かを正確に理解しようとしていました。「可能な限り少ないタイプを参照する可能性がある」のように、「あいまいさを最小限に抑える」ことを意味すると思いました。このコンテキストでObject
は、 はプリミティブではないものである可能性がありますが、 またはMap
のみである可能性があります。基本的に、継承ツリーのリーフに近いクラスが選択されると想定していました。これは、あるクラスが他のクラスのサブクラスである場合に機能します。Map
? extends Map
"B"
それから私はこれを思いついた:
既知の 1 つのタイプのみを参照する可能性があるのに対し、2 つの (および) を参照する可能性があるためE
、出力する必要があると思います。しかし、あいまいな参照エラーが発生します。E
A
A
B
実際にコンストラクターを選択する方法は? 私はドキュメントを読みましたが、率直に言って、それが特異性をどのように決定するかを完全に理解できませんでした. E
より具体的であると判断できない理由の正確な説明を期待していA
ます。
c++ - テンプレート パラメータがあいまいです: テンプレート引数を推測できませんでした
私は次のようなラッパーをやっています:
そして、私はこのエラーが発生しています:
Apply
: 一致するオーバーロードされた関数が見つかりません。void Apply(void (__thiscall T::* )(Value),T *,Value)
: テンプレート パラメータがあいまいです。またはValue
の可能性があります。int
const int &
void Apply(void (__thiscall T::* )(Value),T *,Value)
Value
: fromのテンプレート引数を推定できませんでしたconst int
。
したがって、それはテンプレート パラメーターの推定によるものだとわかりますが、その方法がわかりません。両方の時間に評価されValue
ないのはなぜですか?const int&
c# - HttpMethod が異なるあいまいなアクション メソッド
少なくとも私にとっては、私は奇妙な行動を経験しています。明らかに異なる署名を持つコントローラー内に 2 つのメソッドを記述しました。
問題は、Ajax.BeginForm を使用して POST メソッドを呼び出そうとするたびに、GET メソッド (最初のメソッド) が呼び出されることです。
さて、なぜこれが起こっているのですか?もちろん、GET メソッドの名前を AddTransaction に変更すると、コードは機能しますが、そのままでは機能しない理由を理解したいと思います。
c# - 次の呼び出しがあいまいなのはなぜですか?
コンパイラは method を予期しているため、次の呼び出しは失敗しSetAll(PropertyInfo, int)
ます。
つまり、コンパイラはこのオーバーロードを使用できません。にキャストできませint
んobject
。
これを念頭に置いて、なぜ次の呼び出しがあいまいなのですか?
コンパイラがオブジェクトでオーバーロードを使用できない場合、なぜここで苦労するのですか?
これが私が持っている実際のコードです。私はこの問題に簡単に対処できますが、ただの好奇心です。