Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   C++ (http://www.velocityreviews.com/forums/f39-c.html)
-   -   Why can't push a "const auto_ptr" into a "vector" (http://www.velocityreviews.com/forums/t278617-why-cant-push-a-const-auto_ptr-into-a-vector.html)

bucher 10-22-2003 03:16 PM

Why can't push a "const auto_ptr" into a "vector"
 
Hi,
I want to push a const auto_ptr into a vector, but the compile reports
errors.
Below is the code.
class Folder;
class Result;
class Results
{
public:
int size(){return _Items.size();}
const vector<const auto_ptr<Result> >& Items()const{return _Items;}
Results();
~Results();
private:
vector<const auto_ptr<Result> > _Items;
};

Results::Results()
{
typedef list<const auto_ptr<Result> > ResultVector;
Result* hdresult = new Result();
auto_ptr<Result> hdptr(hdresult);
_Items.push_back(hdptr);
}

The compile reports "could not find a match for operator new(unsigned
long, auto_ptr<Result>*)" in "_construct.h".


There is another piece of code:
map<string, const auto_ptr<Folder> > folderMap;
Folder* folder = new Folder(FolderName);
auto_ptr< Folder > folder_ptr(folder);
folderMap.insert( make_pair(FolderName, folder_ptr) );

I think they are very similar, but the compile doesn't report errors
about this code.

What's wrong with my code? Thanks in advance.

Ron Natalie 10-22-2003 03:36 PM

Re: Why can't push a "const auto_ptr" into a "vector"
 

"bucher" <bucherren@hotmail.com> wrote in message news:79a6b6ad.0310220716.62546536@posting.google.c om...
> Hi,
> I want to push a const auto_ptr into a vector, but the compile reports


Standard containers require operators that are copy constructable and
assignable. Auto_ptr does not meet these constraints.

Further, you can't practically make a vector out of const things anyhow
(as opposed to pointer to const things) because a const object doesn't
meet the assignable requirement.




All times are GMT. The time now is 07:15 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.