作業を簡単にするために DLL ファイルに関数テンプレートを追加しようとしましたが、これまでに失敗しました。関数テンプレートを DLL ヘッダーに配置しようとしても、まだ機能しません。コンパイラは常に迷惑な未解決のメッセージを表示します他のプログラムで DLL を使用しようとするたびに、外部シンボル エラー (ビジュアル スタジオ) が発生します。
とにかくDLLで関数テンプレートを使用することはありますか(すべての関数テンプレートをDLLの代わりにスタンドアロンヘッダーファイルに単純に入れることができることは知っていますが、それはプログラムのメンテナンスを混乱させます)。
私がDLLでやりたいことは次のようなものです:
template<typename T>int foo(T*x){...};
次に、次のように呼び出します。
fooINT(int* x){ return foo<int>(x);};
DLL はコンパイルできますが、常にエラーが発生します。
__declspec(dllimport) の未解決の外部シンボル
Visual Studio がこの DLL を呼び出すプログラムでコンパイルされるたびに。