我正在使用这里提到的 STL 分配器。
我所做的唯一改变是我从一个名为 Object 的基类继承,并且我使用基类的 new 和 delete 函数进行分配。
class MyAlloc :public Object{
......
}
我想使用基类的参数化构造函数,它将基于发送到 STLAllocator 的参数,就像这样。
MyAlloc(A *a) : Object(a) {
... }
然后像这样使用这个构造函数:
A *a = new A();
std::vector<int,MyAlloc<int> (a) > v;
我无法做到这一点。它导致编译错误:
'a'不能出现在常量表达式
模板参数中 2 无效
提前谢谢..:)