有没有办法使用带有不可复制元素的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)的要求以及Assignable
类型的其他要求。”