c++xcode4.2llvm-3.0

xcode - "attempt to use a deleted function" - what does that mean?


I am writing a C++ library in Xcode 4.2.

One of my classes won't compile with this error:

attempt to use a deleted function

There is no specific indication what function it's talking about. I don't want to post the class code here, but does anybody have any idea what this error means?


Solution

  • In C++11 you can declare functions as deleted:

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

    Attempting to use such a function is an error. The purpose of doing this is so that, in this example, copy construction of this type is not possible. This is a more direct replacement for the non-copyable trick used pre-C++11.

    Also, there are rules in the C++ spec that lead to member functions being implicitly deleted.

    The error is telling you that your program attempts to use a deleted function. You'll have to post the error you're getting for more detailed help.