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

时间:2011-11-01 08:30:45

标签: c++ templates runtime

考虑我有一些Factory类:

class Factory
{
 public:
 Factory();
 virtual ~Factory();

 /*
  some factory methods
 */
}

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

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

实际类型将在运行时决定 有可能做这样的事吗?

1 个答案:

答案 0 :(得分:4)

总而言之:不。

更多的话:在编译时,将发生该函数模板的所有实例化(即编译器将确定不同类型所需的该函数的所有不同实例[例如{{1 }},some_type<int*>等。])

考虑类似这样的运行时多态(即继承层次结构)。