读书人

施用auto_ptr error C2558

发布时间: 2012-10-20 14:12:47 作者: rapoo

使用auto_ptr error C2558:

C/C++ code
struct 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容器的元素。

读书人网 >C++

热点推荐