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

前端 未结 5 1905
一向
一向 2021-01-18 12:36

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 indica

相关标签:
5条回答
  • 2021-01-18 13:19

    For me, the issue was that one of the arguments was a pointer, and I passed NULL directly as an argument. To solve this, I simply created a new NULL pointer which I passed to the function as an l-value instead.

    0 讨论(0)
  • 2021-01-18 13:31

    I had a similar message with threads (C++11). It turned out that I was passing the wrong number of parameters to the function called by the thread so the thread did not find any function suitable and gave that message.

    0 讨论(0)
  • 2021-01-18 13:33

    To add to Carlos' answer, I had the right number of arguments but one of the arguments was being passed by reference. Adding ref() around the variable fixed it for me. See here.

    0 讨论(0)
  • 2021-01-18 13:38

    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.

    0 讨论(0)
  • 2021-01-18 13:38

    For me It solved it when I passed "this" pointer as a parameter to the function.

    0 讨论(0)
提交回复
热议问题