問題タブ [specialization]

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

c++ - 整数型の「符号」に基づく部分的なテンプレートの特殊化?

与えられた:

タイプとともに使用するとunsigned、警告が生成されます。

n >= 0タイプの場合Tに比較を行わないための賢い方法はありunsignedますか?部分的なテンプレートの特殊化を追加してみました:

しかし、gcc4.2.1はそれが好きではありません。(とにかく、そのような部分的なテンプレートの特殊化が合法であるとは思いませんでした。)

0 投票する
5 に答える
675 参照

c++ - typedefとその暗黙の型を異なる方法で特殊化するにはどうすればよいですか?

私はこのようなものを持っています:

intに特化する必要はありません。本当に必要なのは、AnotherTypeに対して別の関数を実行することです。また、AnotherTypeまたは基本関数の定義を変更することはできません。

SFINAEのため、オーバーロードも役に立ちません。

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

c++ - 特殊化されていないクラスにネストされたメンバー クラスの特殊化

どうすれば B を同じように特殊化できますが、A の外で行うことができます。これを試してみましたが成功しませんでした。

私は得る:

error C3212: 'A<T>::B<int>' : an explicit specialization of a template member must be a member of an explicit specialization

クラス内で定義することで正確にそれを行うことができるので、意味がありません

VS2010の問題?間違った構文?

ありがとう


PS:これは(とにかく間違っているはずです、VS2010をクラッシュさせます):

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

c++ - 二重テンプレート メソッドの部分的な特殊化が失敗する

テンプレート クラス List があります。

N=2 のメソッド ロードを特殊化する方法は? このコードは無効です...

また、このコードも機能しません。

コンパイラ g++:

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

c++ - テンプレート<<および>>演算子の特殊化

>>クラス内の演算子と演算子をテンプレート化したいのですが<<、文字列専用にしたいので、これを行いました。

しかし、コンパイラエラーが発生しました。

これらのエラーを修正するにはどうすればよいですか?

0 投票する
5 に答える
824 参照

c++ - 特定のテンプレートスペシャライゼーションのオーバーロードされたメンバー関数

私は異なる基本タイプを持って実装されるクラスtPointを持っているので

タイプTがint tPoint<int>、、の場合、割り当て前に値を丸めることができるように、特別なSet(float、float)が必要です。

専門化すれば、次のことができると思いました。

このように、コンパイラはクラス定義に一致する関数がないことを訴えます。

しかし、クラスSet(float、float)で宣言すると、それはすでに定義されていると表示されます(T = float用にコンパイルする場合)

私は自分自身を明確にしたいと思います、これへのクリーンなアプローチは何でしょうか、それとも私は何か間違ったことをしていますか?ありがとう!

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

c# - C#である程度のポリモーフィズムを達成するには?

これは、私が最近解決しようとしていた問題の単純化されたバージョンです。次の2つのクラスがあります。

今私はやりたい:

この機能を実装する最良の方法は何ですか? それはまったく可能ですか?この問題の解決策があると思いますが、回避策と考えており、設計パターンを探しています。

Michal さん、ご回答ありがとうございます。

PS

インターフェイス、仮想関数、抽象クラス、抽象関数を試しました。名前で実際の型のプロパティを呼び出すスーパークラスで関数を作成しても(リフレクションを使用)...私はまだ私が望むものを達成することができません...

0 投票する
6 に答える
713 参照

c++ - 部分的に特殊化されたC++のテンプレートを使用してループを展開する

次のように、テンプレートを使用してC++でループを展開しようとしています。

Cygwinでg++3.4.4をコンパイルすると、次のエラーが発生します。

tmp.cpp:12:エラー:タイプT' of template argument0'はテンプレートパラメータに依存します

私は何が間違っているのですか?タイプTであることを示すために、どういうわけか0に注釈を付ける必要がありますか?

前もって感謝します。

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

c++ - 非コンクリート型のC++テンプレートの特殊化(別のテンプレートクラス!)

いくつかの場所でスマートポインターを使用するためにいくつかのコードを移植していますが、特殊化の問題が発生しました。テンプレート関数を具象型に特化するのは非常に簡単ですが、特定のメソッドを別のテンプレート化されたクラス(私の場合はstd :: auto_ptr)に特化したい場合はどうすればよいですか?コンパイラを泣かせないための適切な魔法の言葉を見つけることができないようです。

コードサンプルは次のとおりです。

タイプがstd::auto_ptrの場合、tSomeContainer :: getInterfacePtr()メソッドをオーバーライドしようとしていますが、うまくいきません。

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

c++ - テンプレート クラス メンバー関数の明示的な特殊化

テンプレートメンバー関数を特定の型に特化する必要があります ( doubleとしましょう)。クラスX自体がテンプレート クラスではない間は問題なく動作しますが、テンプレートを作成すると GCC がコンパイル時エラーを出し始めます。

ここにエラーメッセージがあります

どうすればそれを修正できますか?ここでの問題は何ですか?

前もって感謝します。