对于一个普通的C++函数,它可能在参数列表不显示模板参数:类的构造函数与非参数模板类型
template<typename T>
T default_construct()
{
return T();
}
与
some_type x = default_construct<some_type>();
即使调用此我使用的类型不在参数列表中,我仍然可以将它传递给函数。现在,我想这样做在类的构造函数:
struct Base;
template<typename T>
Base* allocate()
{
return new T; //Assume T derives from Base...
}
struct factory {
template<typename T>
factory()
: func(allocate<T>)
{}
std::tr1::function<Base*()> func;
};
,但我不能找到一种方法,参数向构造函数时,我想构建的factory
一个实例。
有没有办法做到这一点没有把类变成模板类或发送一些未使用的对象到构造函数?
好吧,标准答案很引人注目。谢谢。 – CAdaker 2009-09-19 02:48:43