首页 > 解决方案 > DLL 类 C++ 中的模板方法

问题描述

我正在用 C++ 实现一个 DLL,在我的库中我有一个包含模板方法的类。例如

class A : public IA
{
public: 
 A() { /* constructor stuff */ }
 template <typename T> void foo { /* foo does stuff */ }
};

现在,由于模板是在编译时解析的,如果我从未在我的库中调用foo但它只在使用该库的项目中被调用会发生什么?据我了解,当我编译 DLL 时, foo 不会以任何类型保存在虚拟方法表中,因此,目标项目中的调用可能会导致某种意外行为。任何人都可以确认这一点并更详细地解释它吗?谢谢

标签: c++templatesdllcompilationshared-libraries

解决方案


推荐阅读