我想使用在运行时可用变量的数据类型实例化模板类。例如,考虑此类:
template <typename T, unsigned int U>
class Allocator
{
public:
T * pointer;
Allocator() { pointer = new T[U]; }
~Allocator() { delete [] pointer; }
};
现在,我想像这样使用它:
int main()
{
string temp = "int";
unsigned int count = 64;
Allocator<temp, count> a;
return 0;
}
有什么办法吗?
我在使用基本指针序列化派生类的上下文中遇到了这个问题。我使用RTTI来标识派生类的真实类型,但是真实类型的信息存储在字符串中。我的问题是,可以从基本指针将dynamic_cast转换为类型(在运行时以字符串形式提供)。请帮忙。
最佳答案
你不能数据类型必须在编译时知道。也许使用Boost或union可能会以一种不太漂亮的方式解决问题。
祝好运!