問題タブ [template-function]
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++ - あいまいな呼び出し: int から double または bool へ
Parameter クラスがあり、bool または double を受け入れるようにコンストラクターをオーバーロードしました。int を指定すると、ビルドに失敗します。
エラー C2668: 'Parameter::Parameter': オーバーロードされた関数へのあいまいな呼び出しは、'Parameter::Parameter(std::string,std::string,double)' または
'Parameter::Parameter(std::string,std: :string,bool)'
次の 2 つのオプションがあると思います。
- int デフォルトでオーバーロードする
- 変数を double に明示的に変換する
私は大量のパラメーターを持っていますが、そのうちのいくつかは unsigned long や float など (プロジェクトでは複数の人がサポートしています) であるため、どちらも完璧なソリューションではありません。int から double への暗黙的な変換を強制する方法はありますか? ありがとう。
コード:
c++ - c ++オーバーロードされた関数テンプレートを解決できません
まず、なぜコンパイラが問題のあるコード (ENABLE_OFFENDER マクロによってラップされている) を解決できないように見えるのか理解できません。2 つの get() メソッドの呼び出しシグネチャは大きく異なります。したがって、おそらく C++ 言語の弁護士が、エラーが発生した理由を説明してくれるでしょう。
第二に、どの get() を使用する必要があるかについて、コンパイラにさらにガイダンスを提供する方法はありますか?
問題のあるコードをそのまま変更することで、古いコンパイラで動作するようにコードを取得しました。
c++ - 複数のテンプレート関数が相互作用する
findNth
テンプレート化された関数でヘルパー関数を使用するのに問題がありましたquicksort
。一致する関数呼び出しがないかのように、「宣言されていない識別子 'quicksort' の使用」が表示され続けます。何が起こっているのですか?
そして、これが私のクイックソート機能です。
他のクイックソートヘルパー関数はすべて書き上げられていますが、私の知る限り、問題は発生していません。
c++ - ネストされたクラスで定義された静的テンプレート関数が兄弟のネストされたクラスでフレンドとして宣言されるためには、何をする必要がありますか?
Linux で GCC 4.8.2 を使用して、ファクトリ メソッド Create() にクラス C のプライベート コンストラクターへのアクセスを許可したいのですが、特殊なフレンドを宣言しようとすると、「エラー: 'Create' はこのスコープで宣言されていませんでした」というメッセージが表示されます。 . B::Create() のすべての型への宣言を開かずにこれを機能させるにはどうすればよいですか?