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

Roe*_*man 5 c++ xcode4.2 llvm-3.0

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

我的一个类将无法使用此错误进行编译:"尝试使用已删除的函数".

没有具体说明它正在谈论什么功能.我不想在这里发布类代码,但有人知道这个错误意味着什么吗?在Google 上无处可寻...... :(

谢谢你们

Roey

小智 15

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


小智 5

为了补充 Carlos 的答案,我有正确数量的参数,但其中一个参数是通过引用传递的。在变量周围添加 ref() 为我修复了它。看到这里。


bam*_*s53 4

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

struct Foo {
    Foo(const Foo &) = delete;
};
Run Code Online (Sandbox Code Playgroud)

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

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

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