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

10-05 18:47