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

c++ - 関数テンプレートの特殊化に失敗しました

これは宿題ですが、別のアプローチで既に提出されています。

Visual Studio 2008 から以下を取得しています

コードは次のとおりです。

関数オブジェクトは次のように定義されます。

ここでの治療法は何ですか?

[編集] 申し訳ありませんが、継承を明確にする必要があったかもしれません

[/編集]

[Edit2]
Toolbox からの提案 (非常に妥当と思われる) の後、次のエラー メッセージが表示されました。

main.cpp は同じですが、ファンクター階層とソース ファイルにわずかな変更が加えられています。前方宣言などが機能しなかったため、定義を別のファイルに入れる必要がありました。

私は本当にこれを理解していません。ここで何が欠けていますか? いくつかの変換操作、または何?
[/Edit2]

[Edit3]
最後で最後の編集をお願いします。コードの一部をデバッグして書き直した後、実際にこれが機能するようになりました。これが私が最終的に得たものであり、それが私ができる最善のことです

これは、別のプロジェクト (この日の大部分をこれをいじるのに費やしています) と、数日前に提出した実際のプロジェクトの両方で機能しているようです。
お時間をいただき、ありがとうございました。
[/Edit3]

0 投票する
1 に答える
536 参照

c++ - Cスタイルの文字列のテンプレートの特殊化

通常のcスタイルの文字列を受け入れるテンプレート特殊化の正しい構文を取得するのに問題があります。例えば

その後、コールサイトで

エラーが発生します

Cスタイルの文字列を渡すことができるように特殊化をどのように構成する必要がありますか?

更新:正しい構文template =>template<>を持つようにテンプレートの特殊化を修正しました

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

c++ - 参照型に特化した関数テンプレート

このコードの出力はなぜですか:

一般
一般
一般

3つ目は、関数が正確に特殊化されているため、驚くべきことです。int&

編集:私はオーバーロードが適切な解決策かもしれないことを知っています。その背後にあるロジックを学びたいだけです。

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

c++ - テンプレートのクラス全体の専門化

テンプレート化されたクラスがあるとしましょう

しかし、私は完全に専門化したかった..パラメータを受け入れるテンプレートのために?

これをどのように行うのですか?

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

c++ - template-idがどのテンプレートdelcarationとも一致しません

回避できないように見えるイライラするコンパイラエラーが発生します。テンプレートの特殊化と関係がありますが、何が問題なのかわかりません...

コードは次のとおりです。

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

c++ - テンプレートの特殊化について

ハッシュテーブルの挿入/ルックアップ/削除インターフェイスを提供する必要があります。内部バケット/エントリ管理を提供するためだけにハッシュテーブルを作成しました。ハッシュ関数は外部から提供する必要があります。ハッシュテーブルが固定長のデータ型だけでなくバイト配列も処理できるように、インターフェイスを公開する方法に固執しています。問題は、バイト配列の場合、ハッシュ関数は配列の長さを知る必要があるのに対し、他のタイプの場合は、その情報がなくても実行できることです。私の問題はoperator[]、ハッシュ関数が2つのパラメーターを必要とするため、バイト配列を実装できないことです。operator[]そして、私は心から保ちたいと思います。これを回避する方法はありますか(特殊化せず、その特殊化でT*コンパイラエラーをスローしoperator[]ません)?

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

c++ - 比較 : C++ テンプレートの特殊化アプローチ

どちらがより正しいですか? なぜ。

仕事で、私は最近、特定のテンプレートの専門化を行う方法についての議論に参加しました。

こちらです:

またはこの方法:

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

c++ - 定数値による C++ テンプレートの特殊化

テンプレート パラメーターの 1 つに数値定数を指定して、C++ テンプレート クラスの部分的な特殊化を定義する簡単な方法はありますか? 特定の種類のテンプレートの組み合わせ専用の特別なコンストラクターを作成しようとしています:

Expected identifier before numeric constantこの例はコンパイルされず、2 番目の定義でエラーが返されます。

ここや他の場所で多くの例を見てきましたが、ほとんどは定数ではなく型の特殊化を中心に展開しているようです。

編集:

条件付きで使用されるコンストラクターを作成する方法を探しています。機能的には次のようになります。

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

c++ - const参照によるテンプレートパス

私はいくつかの同様の質問を調べましたが、それでも混乱しています。明示的に(コンパイラの最適化などではなく)、C ++ 03互換で、オブジェクトを特殊なテンプレート関数に渡すときにオブジェクトのコピーを回避する方法を理解しようとしています。これが私のテストコードです:

(1)タイプのオブジェクトを受け入れ、Cコピーを作成します。出力は次のとおりです。

だから私はこれconst C&を避けるためにパラメータ(2)で特殊化しようとしましたが、これは単に機能しません(どうやら理由はこの質問で説明されています)。

ええと、私は「ポインタを渡す」ことができましたが、それはちょっと醜いです。それで、それをどういうわけかうまく行うことを可能にするいくつかのトリックがありますか?

編集:ああ、おそらく私は明確ではありませんでした。私はすでにテンプレート化された関数を持っています

しかし今、私はこの関数を特殊化して、別のオブジェクトへのconst&を受け入れたいと思います。

しかし、私がそれを次のように定義した場合にのみ呼び出されます

基本的に、このスペシャライゼーションでやりたいのは、SpecificObjectのようなテンプレートインターフェイスに適応させることです。

EDIT2:わかりました、スペシャライゼーションをconst C&このように呼び出すように強制できます:

しかし、それをこのように機能させる方法はありf(c)ますか?

編集3:誰かが最終的に同様の質問をする場合、私は最終的に別の質問でこのリンクを見つけました、そしてそれは役に立ちます:http ://www.gotw.ca/publications/mill17.htm

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

c++ - メンバー関数の実装を部分的に特殊化する

私は現在、いくつかのコードをリファクタリングしており、2つのテンプレートパラメーターを使用してクラステンプレートのメンバー関数を明示的に特殊化しています。

テンプレートパラメータをさらに追加したので、クラスは次のようになります。

これらの2つの追加パラメーターは、クラスにtypedefを追加するだけなので、実行時の機能は実際には変更されません。バーの(現在は部分的に)特殊な実装を維持する方法はありますか?その構文を理解できないようで、それが不可能かもしれないという予感があります。

編集:私は次のようなものを探しています:

コンパイルされていないようです。