我想使用在运行时可用变量的数据类型实例化模板类。例如,考虑此类:

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可能会以一种不太漂亮的方式解决问题。

祝好运!

10-08 13:18