我想从Vector<T>
库中导出的函数返回模板容器(例如List<T>
或.so
)。该库使用自己的STL版本,我不能只使用std::vector
。
我可以为类型Obj
创建一个新类:
class ObjVector {
public:
<...>
Obj& operator[](size_t pos);
void push_back(const Obj& obj);
private:
class Impl;
Impl *d_ptr;
};
然后在库源代码中将类ObjVector::Impl
定义为class ObjContainer::Impl: public std::vector<Obj>
和方法。
但是如何使用模板呢?因为我需要用于不同类型对象的向量。