c++中的运行时模板依赖

Runtime template dependency in C++

本文关键字:依赖 运行时 c++      更新时间:2023-10-16

假设我有一个工厂类:

class Factory
{
 public:
 Factory();
 virtual ~Factory();
 /*
  some factory methods
 */
}

所有的方法都根据作为参数的字符串创建对象。但其中一个方法创建的对象依赖于模板参数,如:

template <typename Tp>
some_class<Tp>* fac_meth(string str);

实际类型将在运行时确定。
有可能这样做吗?

一句话:no。

换句话说:在编译时间,该函数模板的所有实例化将发生(即编译器将确定不同类型所需的该函数的所有不同实例[例如some_type<int*>, some_type<double*>等])

考虑运行时多态性(即继承层次结构)。