如何从DLL导出模板?

man*_*ans 1 c++ dll templates

我可以从DLL导出模板吗?

我想从DLL导出这样的函数?

template <class T1,class T2)
T1 Create(T2 parameter)
{ 
      T1 retvalue=new T1();
       retvalue.process(parameter);
      // do some other work
      return T1;
 }
Run Code Online (Sandbox Code Playgroud)

我可以这样做吗?

如果不是,还有其他办法吗?我的意思是从用户定义的类型创建一个对象?

Dav*_*nan 5

您无法从DLL导出模板.在模板化实例化时,编译器需要能够查看所有源代码.

  • 当您创建DLL时,根本无法实例化模板,因此DLL中没有任何内容可以导出.它是下一个用户,他将需要模板声明来完成它. (2认同)