A common pattern in C++ is to make the copy constructor private:

class A
{
    public:
        // ...
    private:
        A(const A&);
};

But will the following code then compile (in C++11/14):

A f();

auto a = f();

The standard contains information about automatically generating move constructors. I neither have access to the standard nor a compiler which actually generates move constructors. My question is: do I have to write

class A
{
    public:
        // ...
    private:
        A(const A&);
        A(const A&&);
};

to prevent moving as well (and operators= analogously)?

Edit
Report