問題タブ [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.
c++ - 特別な C++ テンプレート メソッドが呼び出されない
そして、私が解決できない別のテンプレートの特殊化の問題:
ターミナルログ.hh
terminallog.hh 続き (コメントのおかげで編集)
これは問題なくコンパイルされ、エラーは発生しません。ただし、次のようなことをしようとすると:
配列のポインターアドレスを常に出力します。つまり、特殊なテンプレート
呼び出されることはありません。また、追加のカウントでこれを確認しました。何を試しても、プログラムは常に呼び出しています
専門ではありません。明らかに、コードにエラーがあるはずですが、見つかりません。
c++ - オーバーロードされた関数テンプレートが呼び出されませんでした
私はテンプレートが大好きです。少なくとも、テンプレートを理解できれば好きです ;-)。テンプレートを使用して、オーバーロードされた演算子を実装しました。私は今、関数呼び出しを特化しようとしています。
これが私がすることです:
今、私は次のようなことを試みています
これは問題なくコンパイルされます。ただし、コードを実行すると、すべての要素ではなく、test3 のアドレスが出力されます。コンパイラは次のように考えていると結論付けます。
より良い一致です。しかし、私はそれについて何をすべきかわかりません。私のコードのどこに間違いがありますか? なぜですか
呼んだことない?
c++ - テンプレートクラスの特殊化
私は関連するスレッドのいくつかを読みましたが、それでも問題は明確ではありませんでした:
コンパイルエラー:
このリンクから:coderSource.net
私はいくつかのポイントを逃しましたか?私は持っていると感じます。そこで関数を定義しようとさえしましたが、それは役に立ちませんでした。
c++ - クラス テンプレートの部分的な特殊化
次のコードは正常にコンパイルされますが、その理由がわかりません。
部分的な特殊化とは、特殊化で指定した特定のデータ型にクラスを使用できることを意味していませんか?
ここにはcharに特化したクラスはありません。また、あらゆる種類のデータ型でコンパイルする場合、特殊化の目的は何ですか?
c++ - 構造体を特殊化できません
なぜこれが機能しないのですか?
c++ - 実行時に正しいテンプレートの特殊化を選択する
私は持っています
コード内のさまざまな場所で特殊化が行われます。実行時にのみ既知の正しいものa<i>::f
を呼び出すにはどうすればよいですか?i
i
の可能なすべての値を大きな値でリストしたくありませんswitch
。
編集:
私は次のようなことを考えました
しかし、それはクラッシュし(インスタンス化を強制するために何かを逃したのですか?)、ダミーがそうではないstatic const
(そしてメモリを使用する)ことは好きではありません。もちろん、それarrsize
は必要以上に大きいです。
実際の問題:実行時にのみ指定されたクラスのインスタンスを生成するためgenerate (int i)
に呼び出す関数を持つこと。デザイン(クラス)が与えられ、それらは基本クラスから継承され、コードのどこにでもいつでもより多くの特殊化を追加できますが、それは簡単に忘れられる可能性があるため、すべての人に手動で変更するように強制したくありません。a<i>::generate ()
a<i>
i
a<i>
generate (i)
c++ - 非型パラメーターを使用したメンバー関数の部分的な特殊化
タイプと非タイプの両方のテンプレートパラメータを持つテンプレートクラスがあります。メンバー関数を特殊化したいのですが、次の例のように、完全な特殊化をうまく行うことができます。
ただし、この部分的な特殊化はコンパイルされません。
私が試みていることを達成する方法はありますか?これをMSVC2010で試しました。
c++ - テンプレートのリファクタリング
いくつかのタイプの要素があり、それらのすべてのタイプに対して「マネージャー」を作成したいとします。マネージャーは、要素の作成、アクティブ化/非アクティブ化、および削除を処理します(ユーザーは、マネージャーを使用せずにこれらの要素のインスタンスを作成/破棄しないと想定しています。コードの非常に単純な例は、次のようになります。 :
ここで、オブジェクトのサブグループについて、基本的な操作とは別に、いくつかのキャッシュも行う必要があると想像してみましょう。そのタイプのサブグループに対して、次のような別の「マネージャー」を定義できます。
明らかなように、そのようにマークされた3行を除いて、両方のマネージャーはまったく同じです。この2つのテンプレートをリファクタリングするにはどうすればよいですか?コンパイル時に、特定のタイプがキャッシュ可能かどうかがわかります。デストラクタにも別の行があることに注意してください。実行可能な提案(仮想継承、テンプレートの特殊化、SFINAE ...)は大歓迎です。
c++ - __stdcall関数ポインタのテンプレート部分特殊化
上記のコードでは、Visual C++2010で次のエラーが発生します。
ご覧のとおり、__stdcall
修飾子の問題です。これはコンパイラのバグですか?