首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

施用auto_ptr error C2558

2012-10-20 
使用auto_ptr error C2558:C/C++ codestruct NoConstructor{}void GetAuto(vectorauto_ptrNoConstructo

使用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容器的元素。

热点排行