問題タブ [template-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 投票する
7 に答える
1402 参照

c++ - 特別な C++ テンプレート メソッドが呼び出されない

そして、私が解決できない別のテンプレートの特殊化の問題:

ターミナルログ.hh

terminallog.hh 続き (コメントのおかげで編集)

これは問題なくコンパイルされ、エラーは発生しません。ただし、次のようなことをしようとすると:

配列のポインターアドレスを常に出力します。つまり、特殊なテンプレート

呼び出されることはありません。また、追加のカウントでこれを確認しました。何を試しても、プログラムは常に呼び出しています

専門ではありません。明らかに、コードにエラーがあるはずですが、見つかりません。

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

c++ - オーバーロードされた関数テンプレートが呼び出されませんでした

私はテンプレートが大好きです。少なくとも、テンプレートを理解できれば好きです ;-)。テンプレートを使用して、オーバーロードされた演算子を実装しました。私は今、関数呼び出しを特化しようとしています。

これが私がすることです:

今、私は次のようなことを試みています

これは問題なくコンパイルされます。ただし、コードを実行すると、すべての要素ではなく、test3 のアドレスが出力されます。コンパイラは次のように考えていると結論付けます。

より良い一致です。しかし、私はそれについて何をすべきかわかりません。私のコードのどこに間違いがありますか? なぜですか

呼んだことない?

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

c++ - テンプレートクラスの特殊化

私は関連するスレッドのいくつかを読みましたが、それでも問題は明確ではありませんでした:

コンパイルエラー:

このリンクから:coderSource.net

私はいくつかのポイントを逃しましたか?私は持っていると感じます。そこで関数を定義しようとさえしましたが、それは役に立ちませんでした。

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

c++ - クラス テンプレートの部分的な特殊化

次のコードは正常にコンパイルされますが、その理由がわかりません。

部分的な特殊化とは、特殊化で指定した特定のデータ型にクラスを使用できることを意味していませんか?

ここにはcharに特化したクラスはありません。また、あらゆる種類のデータ型でコンパイルする場合、特殊化の目的は何ですか?

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

c++ - 構造体を特殊化できません

なぜこれが機能しないのですか?

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

c++ - 実行時に正しいテンプレートの特殊化を選択する

私は持っています

コード内のさまざまな場所で特殊化が行われます。実行時にのみ既知の正しいものa<i>::fを呼び出すにはどうすればよいですか?i

iの可能なすべての値を大きな値でリストしたくありませんswitch

編集:

私は次のようなことを考えました

しかし、それはクラッシュし(インスタンス化を強制するために何かを逃したのですか?)、ダミーがそうではないstatic const(そしてメモリを使用する)ことは好きではありません。もちろん、それarrsizeは必要以上に大きいです。


実際の問題:実行時にのみ指定されたクラスのインスタンスを生成するためgenerate (int i)に呼び出す関数を持つこと。デザイン(クラス)が与えられ、それらは基本クラスから継承され、コードのどこにでもいつでもより多くの特殊化を追加できますが、それは簡単に忘れられる可能性があるため、すべての人に手動で変更するように強制したくありません。a<i>::generate ()a<i>ia<i>generate (i)

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

c++ - 非型パラメーターを使用したメンバー関数の部分的な特殊化

タイプと非タイプの両方のテンプレートパラメータを持つテンプレートクラスがあります。メンバー関数を特殊化したいのですが、次の例のように、完全な特殊化をうまく行うことができます。

ただし、この部分的な特殊化はコンパイルされません。

私が試みていることを達成する方法はありますか?これをMSVC2010で試しました。

0 投票する
4 に答える
407 参照

c++ - テンプレートのリファクタリング

いくつかのタイプの要素があり、それらのすべてのタイプに対して「マネージャー」を作成したいとします。マネージャーは、要素の作成、アクティブ化/非アクティブ化、および削除を処理します(ユーザーは、マネージャーを使用せずにこれらの要素のインスタンスを作成/破棄しないと想定しています。コードの非常に単純な例は、次のようになります。 :

ここで、オブジェクトのサブグループについて、基本的な操作とは別に、いくつかのキャッシュも行う必要があると想像してみましょう。そのタイプのサブグループに対して、次のような別の「マネージャー」を定義できます。

明らかなように、そのようにマークされた3行を除いて、両方のマネージャーはまったく同じです。この2つのテンプレートをリファクタリングするにはどうすればよいですか?コンパイル時に、特定のタイプがキャッシュ可能かどうかがわかります。デストラクタにも別の行があることに注意してください。実行可能な提案(仮想継承、テンプレートの特殊化、SFINAE ...)は大歓迎です。

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

c++ - __stdcall関数ポインタのテンプレート部分特殊化

上記のコードでは、Visual C++2010で次のエラーが発生します。

ご覧のとおり、__stdcall修飾子の問題です。これはコンパイラのバグですか?