施用auto_ptr error C2558
使用auto_ptr error C2558:C/C++ codestruct NoConstructor{}void GetAuto(vectorauto_ptrNoConstructo
使用auto_ptr error C2558:
C/C++ codestruct NoConstructor{};void GetAuto(vector<auto_ptr<NoConstructor> >& vt){ auto_ptr<NoConstructor> ap(new NoConstructor()); vt.push_back(ap);}int main(int argc, char *argv[]){ vector<auto_ptr<NoConstructor> > vt; GetAuto(vt); return 0;}
error C2558: class 'std::auto_ptr<_Ty>' : no copy constructor available or copy constructor is declared 'explicit'
我想保存一个系统给定的结构体(这里假定它的名字是NoConstructor),没有构造函数,这样保存到vector的时候,会报错,怎么办呢?
[解决办法]用boost::shared_ptr来代替auto_ptr。
boost::shared_ptr可作为stl容器的元素。