有没有办法使用STL包含不可复制的元素?
这样的事情:
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' }
解决方法
不,不可复制的元素不能在C容器类中.
根据标准23.1第3段,“存储在这些组件中的对象类型必须满足CopyConstructible类型(20.1.3)的要求,以及可分配类型的附加要求.”