xcode - “尝试使用已删除的功能” - 这是什么意思?

新手上路,请多包涵

我正在 Xcode 4.2 中编写一个 C++ 库。

我的一个类无法编译并出现此错误:

尝试使用已删除的功能

没有具体说明它在谈论什么功能。我不想在这里发布课程代码,但是有人知道这个错误是什么意思吗?

原文由 Roey Lehman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 315
2 个回答

在 C++11 中,您可以将函数声明为已删除:

 struct Foo {
    Foo(const Foo &) = delete;
};

尝试使用这样的功能是错误的。这样做的目的是,在这个例子中,这种类型的复制构造是不可能的。这是 C++11 之前使用的不可复制技巧的更直接替代。

此外,C++ 规范中有一些规则会导致成员函数被隐式删除。

该错误告诉您您的程序尝试使用已删除的功能。您必须发布您收到的错误以获得更详细的帮助。

原文由 bames53 发布,翻译遵循 CC BY-SA 3.0 许可协议

我对线程(C++ 11)有类似的消息。事实证明,我向线程调用的函数传递了错误数量的参数,因此线程没有找到任何合适的函数并给出了该消息。

原文由 Carlos Molinero 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题