Is there a way use STL containters with non-copyable elements?
something like this:
class noncopyable
{
noncopyable(noncopyable&);
const noncopyable& operator=(noncopyable&);
public:
noncopyable(){};
};
int main()
{
list<noncopyable> MyList; //error C2248: 'noncopyable::noncopyable' : cannot access private member declared in class 'noncopyable'
}
No, non-copyable elements can't be in C++ container classes.
According to the standard, 23.1 paragraph 3, "The type of objects stored in these components must met the requirements of CopyConstructible
types (20.1.3), and the additional requirements of Assignable
types."