2011-11-08 2 views
-1

可能性の重複:
Why can templates only be implemented in the header file?
Why should the implementation and the declaration of a template class be in the same header file?テンプレート定義ですか?

私は、C++の関数テンプレートに関する二つの基本的な質問があります。

  1. テンプレートを.hファイルで定義する必要がありますか?
  2. 私はdllを作成し、そのdllでC++クラス全体をエクスポートしました。このクラスには関数テンプレートが含まれています。私はこのdllをlodesする別のモジュールの中でこのテンプレートを呼び出しています。したがって、このテンプレートに関連するオブジェクトファイルが作成されます。

答えて

2
  1. ほとんど常に。質問のこの部分のdupsのトン。
  2. DLLをロードしているアプリケーションは、テンプレートを既に取り込んでいる必要があります(#1を参照)ので、実行時の読み込みは無関係です。また、C++ ABIは非常に厄介であり、パブリックC++ APIをDLLに入れることは、あらゆる種類の微妙なABI破損を要求していることにも注意してください。
関連する問題