問題タブ [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.

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

c++ - ADLが関数テンプレートを見つけられないのはなぜですか?

C ++仕様のどの部分が、引数に依存するルックアップが、関連付けられた名前空間のセットで関数テンプレートを見つけることを制限していますか?言い換えると、main以下の最後の呼び出しがコンパイルに失敗するのはなぜですか?

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

c++ - C ++テンプレート関数はスレッドセーフですか?

グーグルは何も見つかりません。それらは使用時に作成されますか、それとも一般的な部分はインスタンス間で共有されますか?

(テンプレートクラスについても同じですか?)

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

c++ - テンプレート関数は一時的なコンテナを作成しているようです

私が保守しているアプリケーションで、永続化されていたアイテムのタイプを除いてすべて同じことを行う6つの関数を持つ永続化クラスに出くわしました。これらのアイテムはすべて同じ基本クラスであり、テンプレート関数の候補です。

ただし、一度変換すると、いくつかの項目が含まれているはずなのに、関数が書き込まれているコンテナーにステップインされると、常に空になります(一時的なコピーが作成されますか?)。確かに、デバッガーでコンテナーを検査すると、コンテナーの項目はゼロです。また、書き込み関数は、ステータスの変更をクライアントに通知するイベントをトリガーしますが、そのスレッドがdequeからアイテムを抽出しようとすると、常に空になります。

基本クラスはCItemと呼ばれ、他のすべてのアイテムはそのアイテムの特殊です(CErrorItemなど)。それらはすべて、両端キュー(std::deque<std::tr1::shared_ptr<CItem>> m_items;)およびディスクに永続化されます。アイテムは正しくディスクに書き込まれます。正しく処理されると、アイテムはdequeとdiskの両方から削除されます。

アイテムはコードで追加されますm_persistence.Add<CErrorItem>(errorItem);

アイテムのすべてのデータは単純な構造体(例ErrorItemInfo)に格納され、アイテムはこれらの単純なデータストアをコンストラクターに取り込みます。U以下のコードでで示されているのはこの構造体です。はT派生CItemです。

アイテムを追加する機能は次のとおりです。

最も簡単な解決策は、コードを特定の関数に戻すことです。おそらくそうしますが、将来これを回避できるように、なぜこれが発生するのかを理解したいと思います。

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

c++ - テンプレート関数とクラスは異なるファイルで使用されます

テンプレート関数を 1 つのファイルで定義し、多くのファイルで使用したいと考えています。これは、通常の関数プロトタイプと同じように機能しますか? それで、一度定義して、プロトタイプを他のファイルに含めることができますか? クラスについても同じ質問があります。クラスの場合と同様に、テンプレート クラスの完全な定義を各ヘッダー ファイルに含める必要がありますか? 別のファイルでテンプレート関数を 2 回定義すると、エラーが発生するのでしょうか。それとも、チェックされないだけでしょうか。

もう 1 つの質問ですが、テンプレート関数のプロトタイプの形式は何ですか?

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

c++ - 使用ポイントの後にテンプレート関数を特殊化すると、コンパイルが中断されます

次の例を考えてみましょう:

コンパイルは失敗し、次のエラーメッセージが表示されます。

標準のどの段落がこのエラーを説明していますか?

PS:mainの前に関数定義を移動すると、エラーがなくなることを知っています。

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

c++ - Windows CE 用の eMbedded Visual C++ 4.0 のテンプレート関数

eMbedded Visual C++ 4.0 (SP4) はテンプレート関数をサポートしていますか? Visual C++ 6.0 で正常に動作するコードをコンパイルしようとすると、エラーが発生します。

コンパイルするテンプレート関数は次のとおりです。

テンプレート機能の使用法:

コンパイル エラー:

変更する必要があるコンパイラ スイッチはありますか? これをコンパイルするにはどうすればよいですか?

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

c++ - C++: テンプレート関数で型を使用して分岐する方法は?

私はテンプレートにあまり慣れていません。テンプレートの種類に基づいて取得する配列を選択する get というテンプレート関数を作成するにはどうすればよいですか? 以下の例を参照してください。

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

c++ - C ++のテンプレート関数で通常のパラメーターとテンプレートパラメーターを渡す方法は?

myNamespaceという名前空間に(次のように)テンプレート関数があります。

ただし、この関数を呼び出すと、次のエラーが発生します。

私はすべての組み合わせを試しましたが、運がありません、助けてください!!!

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

c++ - イテレータから取得したポインタ引数を持つC++テンプレート関数でエラーが発生する

タイトルが十分に説明的でなかった場合は申し訳ありませんが、これの何が問題なのかわかりません。

次のメンバー関数内から上記の関数を呼び出すと、次のようになります。

私はいつも得る: policy.hpp:237: error: no matching function for call to 'findPolicy(boost::ptr_vector<Greedy<guState>, boost::heap_clone_allocator, std::allocator<void*> >&, State*&)

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

c++ - テンプレート化された引数を持つ C++ 関数テンプレート

引数として標準コンテナー (リスト、スタック、ベクターなど) のいずれかを取ることができる関数を作成しようとしています。コンテナ内の型も知りたいです。これが私が試したことです。

container_typeこの関数内の once の型は常に_Container_base_aux_alloc_empty、標準コンテナの基本クラスであると思います。

ここで何が起こっているのですか?

この関数が正しい型を返すようにするにはどうすればよいですか?