Deletion of copy-ctor & copy-assignment - public, private or protected?2019 Community Moderator ElectionWhat are the differences between a pointer variable and a reference variable in C++?What is the difference between public, protected, package-private and private in Java?In C#, what is the difference between public, private, protected, and having no access modifier?Difference between private, public, and protected inheritanceWhat is the copy-and-swap idiom?What is The Rule of Three?What are the basic rules and idioms for operator overloading?Why should C++ programmers minimize use of 'new'?Replacing a 32-bit loop counter with 64-bit introduces crazy performance deviationsDefault move constructor/assignment and deleted copy constructor/assignment

Am I eligible for the Eurail Youth pass? I am 27.5 years old

Why Choose Less Effective Armour Types?

Knife as defense against stray dogs

What favor did Moody owe Dumbledore?

Worshiping one God at a time?

I got the following comment from a reputed math journal. What does it mean?

What are substitutions for coconut in curry?

Fewest number of steps to reach 200 using special calculator

gerund and noun applications

What can I do if I am asked to learn different programming languages very frequently?

Is honey really a supersaturated solution? Does heating to un-crystalize redissolve it or melt it?

Why is indicated airspeed rather than ground speed used during the takeoff roll?

Turning a hard to access nut?

Variable completely messes up echoed string

Brake pads destroying wheels

Do US professors/group leaders only get a salary, but no group budget?

How do hiring committees for research positions view getting "scooped"?

Optimising a list searching algorithm

What exactly term 'companion plants' means?

HP P840 HDD RAID 5 many strange drive failures

Is it correct to say "which country do you like the most?"

Is it insecure to send a password in a `curl` command?

Synchronized implementation of a bank account in Java

Matrix using tikz package



Deletion of copy-ctor & copy-assignment - public, private or protected?



2019 Community Moderator ElectionWhat are the differences between a pointer variable and a reference variable in C++?What is the difference between public, protected, package-private and private in Java?In C#, what is the difference between public, private, protected, and having no access modifier?Difference between private, public, and protected inheritanceWhat is the copy-and-swap idiom?What is The Rule of Three?What are the basic rules and idioms for operator overloading?Why should C++ programmers minimize use of 'new'?Replacing a 32-bit loop counter with 64-bit introduces crazy performance deviationsDefault move constructor/assignment and deleted copy constructor/assignment










13















In order to make an object non-copiable we can explicitly delete both its copy-constructor and copy-assignment operator.



My question is: What is the right place to do it - in the public, private or protected section of the class? And - does this choice make any difference?










share|improve this question
























  • If you throw your old shoes away, do you think about where to store them?

    – Klaus
    13 hours ago






  • 10





    @Klaus: No, but you think about where to throw them...

    – einpoklum
    11 hours ago















13















In order to make an object non-copiable we can explicitly delete both its copy-constructor and copy-assignment operator.



My question is: What is the right place to do it - in the public, private or protected section of the class? And - does this choice make any difference?










share|improve this question
























  • If you throw your old shoes away, do you think about where to store them?

    – Klaus
    13 hours ago






  • 10





    @Klaus: No, but you think about where to throw them...

    – einpoklum
    11 hours ago













13












13








13


1






In order to make an object non-copiable we can explicitly delete both its copy-constructor and copy-assignment operator.



My question is: What is the right place to do it - in the public, private or protected section of the class? And - does this choice make any difference?










share|improve this question
















In order to make an object non-copiable we can explicitly delete both its copy-constructor and copy-assignment operator.



My question is: What is the right place to do it - in the public, private or protected section of the class? And - does this choice make any difference?







c++ c++11 access-modifiers deleted-functions






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 6 hours ago









StoryTeller

102k12215279




102k12215279










asked 13 hours ago









SajalSajal

613515




613515












  • If you throw your old shoes away, do you think about where to store them?

    – Klaus
    13 hours ago






  • 10





    @Klaus: No, but you think about where to throw them...

    – einpoklum
    11 hours ago

















  • If you throw your old shoes away, do you think about where to store them?

    – Klaus
    13 hours ago






  • 10





    @Klaus: No, but you think about where to throw them...

    – einpoklum
    11 hours ago
















If you throw your old shoes away, do you think about where to store them?

– Klaus
13 hours ago





If you throw your old shoes away, do you think about where to store them?

– Klaus
13 hours ago




10




10





@Klaus: No, but you think about where to throw them...

– einpoklum
11 hours ago





@Klaus: No, but you think about where to throw them...

– einpoklum
11 hours ago












3 Answers
3






active

oldest

votes


















13















what is the right place to do it - in the public, private or protected section of the class?




I would put them in the public section.



This is because deleting a constructor or an assignment operator is orthogonal to making them private / protected; and when these aren't deleted, they are public. Putting the deletions in one of those two sections seems to me like hinting "If I hadn't deleted them, I would have made them private/protected" - which is not a message you want to convey in your case.



Note, though, that the compiler doesn't care which section you put the deletion in.






share|improve this answer




















  • 2





    Exactly this. Back in the day we made these things private specifically to deny folks access to them, but this was always a hack and was only because we couldn't delete them. That consideration is no longer in play. I don't remember whether the "copy constructor is private" diagnostic tends to take precedence over the "copy constructor is deleted" diagnostic (I doubt it) but even if it doesn't changing the access level is not the right thing to do for the reasons you give.

    – Lightness Races in Orbit
    6 hours ago











  • @LightnessRacesinOrbit I know I've seen some compilers give both errors when a function is private and deleted. The one about private access becomes just extra noise.

    – aschepler
    1 hour ago











  • @aschepler Fair does

    – Lightness Races in Orbit
    1 hour ago











  • @aschepler: Examples?

    – einpoklum
    1 hour ago











  • gcc 7.4, but not gcc 8.1: godbolt.org/z/udzwB2 (so I guess they improved that).

    – aschepler
    50 mins ago


















10















Does where we put the deleted definition make any difference?




From a pure language standpoint it makes absolutely zero difference. Name lookup and overload resolution happen before access checking. And attempting to refer to a deleted function at the end of overload resolution makes your program ill-formed, period. A compiler may or may not issue another diagnostic about the accessibility, but the program already has an error that must be reported.



So you can put that deleted definition with whatever accessibility you desire. I think most will keep it private, to be inline with the "old" practice of making a class non-copyable (put the declaration of those members in the private section of the class, and not define them), if only to help those who know the old ways "get it" sooner. A mixture of idioms, if you would.



Marking as private is also something you can't avoid if you need to support both C++03 and C++11 mode. With the help of a macro, a header can be made to conform to both standards easily:



#if __cplusplus >= 201103L
#define DELETED_DEFINITION = delete
#else
#define DELETED_DEFINITION
#endif

class noncopyable
private:
// This header can be compiled as both C++11 and C++03
noncopyable(noncopyable const&) DELETED_DEFINITION;
void operator=(noncopyable const&) DELETED_DEFINITION;
;





share|improve this answer

























  • If you want backwards compatibility then this is a must.

    – Lightness Races in Orbit
    6 hours ago


















2














From Scott Meyers's book, Effective Modern C++ (Item 10), it seems that it is better to define them as public:




By convention, deleted functions are declared public, not private.
There’s a reason for that. When client code tries to use a member
function, C++ checks accessibility before deleted status. When client
code tries to use a deleted private function, some compilers complain
only about the function being private, even though the function’s
accessibility doesn’t really affect whether it can be used. It’s worth
bearing this in mind when revising legacy code to replace
private-and-not-defined member functions with deleted ones, because
making the new functions public will generally result in better error
messages.







share|improve this answer

























  • Meyers contradicts StoryTeller's answer, and my tests. It's still good advice, but I find einpoklum's reasoning to be superior.

    – Lightness Races in Orbit
    1 hour ago











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55205874%2fdeletion-of-copy-ctor-copy-assignment-public-private-or-protected%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























3 Answers
3






active

oldest

votes








3 Answers
3






active

oldest

votes









active

oldest

votes






active

oldest

votes









13















what is the right place to do it - in the public, private or protected section of the class?




I would put them in the public section.



This is because deleting a constructor or an assignment operator is orthogonal to making them private / protected; and when these aren't deleted, they are public. Putting the deletions in one of those two sections seems to me like hinting "If I hadn't deleted them, I would have made them private/protected" - which is not a message you want to convey in your case.



Note, though, that the compiler doesn't care which section you put the deletion in.






share|improve this answer




















  • 2





    Exactly this. Back in the day we made these things private specifically to deny folks access to them, but this was always a hack and was only because we couldn't delete them. That consideration is no longer in play. I don't remember whether the "copy constructor is private" diagnostic tends to take precedence over the "copy constructor is deleted" diagnostic (I doubt it) but even if it doesn't changing the access level is not the right thing to do for the reasons you give.

    – Lightness Races in Orbit
    6 hours ago











  • @LightnessRacesinOrbit I know I've seen some compilers give both errors when a function is private and deleted. The one about private access becomes just extra noise.

    – aschepler
    1 hour ago











  • @aschepler Fair does

    – Lightness Races in Orbit
    1 hour ago











  • @aschepler: Examples?

    – einpoklum
    1 hour ago











  • gcc 7.4, but not gcc 8.1: godbolt.org/z/udzwB2 (so I guess they improved that).

    – aschepler
    50 mins ago















13















what is the right place to do it - in the public, private or protected section of the class?




I would put them in the public section.



This is because deleting a constructor or an assignment operator is orthogonal to making them private / protected; and when these aren't deleted, they are public. Putting the deletions in one of those two sections seems to me like hinting "If I hadn't deleted them, I would have made them private/protected" - which is not a message you want to convey in your case.



Note, though, that the compiler doesn't care which section you put the deletion in.






share|improve this answer




















  • 2





    Exactly this. Back in the day we made these things private specifically to deny folks access to them, but this was always a hack and was only because we couldn't delete them. That consideration is no longer in play. I don't remember whether the "copy constructor is private" diagnostic tends to take precedence over the "copy constructor is deleted" diagnostic (I doubt it) but even if it doesn't changing the access level is not the right thing to do for the reasons you give.

    – Lightness Races in Orbit
    6 hours ago











  • @LightnessRacesinOrbit I know I've seen some compilers give both errors when a function is private and deleted. The one about private access becomes just extra noise.

    – aschepler
    1 hour ago











  • @aschepler Fair does

    – Lightness Races in Orbit
    1 hour ago











  • @aschepler: Examples?

    – einpoklum
    1 hour ago











  • gcc 7.4, but not gcc 8.1: godbolt.org/z/udzwB2 (so I guess they improved that).

    – aschepler
    50 mins ago













13












13








13








what is the right place to do it - in the public, private or protected section of the class?




I would put them in the public section.



This is because deleting a constructor or an assignment operator is orthogonal to making them private / protected; and when these aren't deleted, they are public. Putting the deletions in one of those two sections seems to me like hinting "If I hadn't deleted them, I would have made them private/protected" - which is not a message you want to convey in your case.



Note, though, that the compiler doesn't care which section you put the deletion in.






share|improve this answer
















what is the right place to do it - in the public, private or protected section of the class?




I would put them in the public section.



This is because deleting a constructor or an assignment operator is orthogonal to making them private / protected; and when these aren't deleted, they are public. Putting the deletions in one of those two sections seems to me like hinting "If I hadn't deleted them, I would have made them private/protected" - which is not a message you want to convey in your case.



Note, though, that the compiler doesn't care which section you put the deletion in.







share|improve this answer














share|improve this answer



share|improve this answer








edited 6 hours ago

























answered 12 hours ago









einpoklumeinpoklum

35.7k27131257




35.7k27131257







  • 2





    Exactly this. Back in the day we made these things private specifically to deny folks access to them, but this was always a hack and was only because we couldn't delete them. That consideration is no longer in play. I don't remember whether the "copy constructor is private" diagnostic tends to take precedence over the "copy constructor is deleted" diagnostic (I doubt it) but even if it doesn't changing the access level is not the right thing to do for the reasons you give.

    – Lightness Races in Orbit
    6 hours ago











  • @LightnessRacesinOrbit I know I've seen some compilers give both errors when a function is private and deleted. The one about private access becomes just extra noise.

    – aschepler
    1 hour ago











  • @aschepler Fair does

    – Lightness Races in Orbit
    1 hour ago











  • @aschepler: Examples?

    – einpoklum
    1 hour ago











  • gcc 7.4, but not gcc 8.1: godbolt.org/z/udzwB2 (so I guess they improved that).

    – aschepler
    50 mins ago












  • 2





    Exactly this. Back in the day we made these things private specifically to deny folks access to them, but this was always a hack and was only because we couldn't delete them. That consideration is no longer in play. I don't remember whether the "copy constructor is private" diagnostic tends to take precedence over the "copy constructor is deleted" diagnostic (I doubt it) but even if it doesn't changing the access level is not the right thing to do for the reasons you give.

    – Lightness Races in Orbit
    6 hours ago











  • @LightnessRacesinOrbit I know I've seen some compilers give both errors when a function is private and deleted. The one about private access becomes just extra noise.

    – aschepler
    1 hour ago











  • @aschepler Fair does

    – Lightness Races in Orbit
    1 hour ago











  • @aschepler: Examples?

    – einpoklum
    1 hour ago











  • gcc 7.4, but not gcc 8.1: godbolt.org/z/udzwB2 (so I guess they improved that).

    – aschepler
    50 mins ago







2




2





Exactly this. Back in the day we made these things private specifically to deny folks access to them, but this was always a hack and was only because we couldn't delete them. That consideration is no longer in play. I don't remember whether the "copy constructor is private" diagnostic tends to take precedence over the "copy constructor is deleted" diagnostic (I doubt it) but even if it doesn't changing the access level is not the right thing to do for the reasons you give.

– Lightness Races in Orbit
6 hours ago





Exactly this. Back in the day we made these things private specifically to deny folks access to them, but this was always a hack and was only because we couldn't delete them. That consideration is no longer in play. I don't remember whether the "copy constructor is private" diagnostic tends to take precedence over the "copy constructor is deleted" diagnostic (I doubt it) but even if it doesn't changing the access level is not the right thing to do for the reasons you give.

– Lightness Races in Orbit
6 hours ago













@LightnessRacesinOrbit I know I've seen some compilers give both errors when a function is private and deleted. The one about private access becomes just extra noise.

– aschepler
1 hour ago





@LightnessRacesinOrbit I know I've seen some compilers give both errors when a function is private and deleted. The one about private access becomes just extra noise.

– aschepler
1 hour ago













@aschepler Fair does

– Lightness Races in Orbit
1 hour ago





@aschepler Fair does

– Lightness Races in Orbit
1 hour ago













@aschepler: Examples?

– einpoklum
1 hour ago





@aschepler: Examples?

– einpoklum
1 hour ago













gcc 7.4, but not gcc 8.1: godbolt.org/z/udzwB2 (so I guess they improved that).

– aschepler
50 mins ago





gcc 7.4, but not gcc 8.1: godbolt.org/z/udzwB2 (so I guess they improved that).

– aschepler
50 mins ago













10















Does where we put the deleted definition make any difference?




From a pure language standpoint it makes absolutely zero difference. Name lookup and overload resolution happen before access checking. And attempting to refer to a deleted function at the end of overload resolution makes your program ill-formed, period. A compiler may or may not issue another diagnostic about the accessibility, but the program already has an error that must be reported.



So you can put that deleted definition with whatever accessibility you desire. I think most will keep it private, to be inline with the "old" practice of making a class non-copyable (put the declaration of those members in the private section of the class, and not define them), if only to help those who know the old ways "get it" sooner. A mixture of idioms, if you would.



Marking as private is also something you can't avoid if you need to support both C++03 and C++11 mode. With the help of a macro, a header can be made to conform to both standards easily:



#if __cplusplus >= 201103L
#define DELETED_DEFINITION = delete
#else
#define DELETED_DEFINITION
#endif

class noncopyable
private:
// This header can be compiled as both C++11 and C++03
noncopyable(noncopyable const&) DELETED_DEFINITION;
void operator=(noncopyable const&) DELETED_DEFINITION;
;





share|improve this answer

























  • If you want backwards compatibility then this is a must.

    – Lightness Races in Orbit
    6 hours ago















10















Does where we put the deleted definition make any difference?




From a pure language standpoint it makes absolutely zero difference. Name lookup and overload resolution happen before access checking. And attempting to refer to a deleted function at the end of overload resolution makes your program ill-formed, period. A compiler may or may not issue another diagnostic about the accessibility, but the program already has an error that must be reported.



So you can put that deleted definition with whatever accessibility you desire. I think most will keep it private, to be inline with the "old" practice of making a class non-copyable (put the declaration of those members in the private section of the class, and not define them), if only to help those who know the old ways "get it" sooner. A mixture of idioms, if you would.



Marking as private is also something you can't avoid if you need to support both C++03 and C++11 mode. With the help of a macro, a header can be made to conform to both standards easily:



#if __cplusplus >= 201103L
#define DELETED_DEFINITION = delete
#else
#define DELETED_DEFINITION
#endif

class noncopyable
private:
// This header can be compiled as both C++11 and C++03
noncopyable(noncopyable const&) DELETED_DEFINITION;
void operator=(noncopyable const&) DELETED_DEFINITION;
;





share|improve this answer

























  • If you want backwards compatibility then this is a must.

    – Lightness Races in Orbit
    6 hours ago













10












10








10








Does where we put the deleted definition make any difference?




From a pure language standpoint it makes absolutely zero difference. Name lookup and overload resolution happen before access checking. And attempting to refer to a deleted function at the end of overload resolution makes your program ill-formed, period. A compiler may or may not issue another diagnostic about the accessibility, but the program already has an error that must be reported.



So you can put that deleted definition with whatever accessibility you desire. I think most will keep it private, to be inline with the "old" practice of making a class non-copyable (put the declaration of those members in the private section of the class, and not define them), if only to help those who know the old ways "get it" sooner. A mixture of idioms, if you would.



Marking as private is also something you can't avoid if you need to support both C++03 and C++11 mode. With the help of a macro, a header can be made to conform to both standards easily:



#if __cplusplus >= 201103L
#define DELETED_DEFINITION = delete
#else
#define DELETED_DEFINITION
#endif

class noncopyable
private:
// This header can be compiled as both C++11 and C++03
noncopyable(noncopyable const&) DELETED_DEFINITION;
void operator=(noncopyable const&) DELETED_DEFINITION;
;





share|improve this answer
















Does where we put the deleted definition make any difference?




From a pure language standpoint it makes absolutely zero difference. Name lookup and overload resolution happen before access checking. And attempting to refer to a deleted function at the end of overload resolution makes your program ill-formed, period. A compiler may or may not issue another diagnostic about the accessibility, but the program already has an error that must be reported.



So you can put that deleted definition with whatever accessibility you desire. I think most will keep it private, to be inline with the "old" practice of making a class non-copyable (put the declaration of those members in the private section of the class, and not define them), if only to help those who know the old ways "get it" sooner. A mixture of idioms, if you would.



Marking as private is also something you can't avoid if you need to support both C++03 and C++11 mode. With the help of a macro, a header can be made to conform to both standards easily:



#if __cplusplus >= 201103L
#define DELETED_DEFINITION = delete
#else
#define DELETED_DEFINITION
#endif

class noncopyable
private:
// This header can be compiled as both C++11 and C++03
noncopyable(noncopyable const&) DELETED_DEFINITION;
void operator=(noncopyable const&) DELETED_DEFINITION;
;






share|improve this answer














share|improve this answer



share|improve this answer








edited 5 hours ago

























answered 12 hours ago









StoryTellerStoryTeller

102k12215279




102k12215279












  • If you want backwards compatibility then this is a must.

    – Lightness Races in Orbit
    6 hours ago

















  • If you want backwards compatibility then this is a must.

    – Lightness Races in Orbit
    6 hours ago
















If you want backwards compatibility then this is a must.

– Lightness Races in Orbit
6 hours ago





If you want backwards compatibility then this is a must.

– Lightness Races in Orbit
6 hours ago











2














From Scott Meyers's book, Effective Modern C++ (Item 10), it seems that it is better to define them as public:




By convention, deleted functions are declared public, not private.
There’s a reason for that. When client code tries to use a member
function, C++ checks accessibility before deleted status. When client
code tries to use a deleted private function, some compilers complain
only about the function being private, even though the function’s
accessibility doesn’t really affect whether it can be used. It’s worth
bearing this in mind when revising legacy code to replace
private-and-not-defined member functions with deleted ones, because
making the new functions public will generally result in better error
messages.







share|improve this answer

























  • Meyers contradicts StoryTeller's answer, and my tests. It's still good advice, but I find einpoklum's reasoning to be superior.

    – Lightness Races in Orbit
    1 hour ago
















2














From Scott Meyers's book, Effective Modern C++ (Item 10), it seems that it is better to define them as public:




By convention, deleted functions are declared public, not private.
There’s a reason for that. When client code tries to use a member
function, C++ checks accessibility before deleted status. When client
code tries to use a deleted private function, some compilers complain
only about the function being private, even though the function’s
accessibility doesn’t really affect whether it can be used. It’s worth
bearing this in mind when revising legacy code to replace
private-and-not-defined member functions with deleted ones, because
making the new functions public will generally result in better error
messages.







share|improve this answer

























  • Meyers contradicts StoryTeller's answer, and my tests. It's still good advice, but I find einpoklum's reasoning to be superior.

    – Lightness Races in Orbit
    1 hour ago














2












2








2







From Scott Meyers's book, Effective Modern C++ (Item 10), it seems that it is better to define them as public:




By convention, deleted functions are declared public, not private.
There’s a reason for that. When client code tries to use a member
function, C++ checks accessibility before deleted status. When client
code tries to use a deleted private function, some compilers complain
only about the function being private, even though the function’s
accessibility doesn’t really affect whether it can be used. It’s worth
bearing this in mind when revising legacy code to replace
private-and-not-defined member functions with deleted ones, because
making the new functions public will generally result in better error
messages.







share|improve this answer















From Scott Meyers's book, Effective Modern C++ (Item 10), it seems that it is better to define them as public:




By convention, deleted functions are declared public, not private.
There’s a reason for that. When client code tries to use a member
function, C++ checks accessibility before deleted status. When client
code tries to use a deleted private function, some compilers complain
only about the function being private, even though the function’s
accessibility doesn’t really affect whether it can be used. It’s worth
bearing this in mind when revising legacy code to replace
private-and-not-defined member functions with deleted ones, because
making the new functions public will generally result in better error
messages.








share|improve this answer














share|improve this answer



share|improve this answer








edited 1 hour ago









Lightness Races in Orbit

293k54476809




293k54476809










answered 1 hour ago









hsalimihsalimi

4,63022350




4,63022350












  • Meyers contradicts StoryTeller's answer, and my tests. It's still good advice, but I find einpoklum's reasoning to be superior.

    – Lightness Races in Orbit
    1 hour ago


















  • Meyers contradicts StoryTeller's answer, and my tests. It's still good advice, but I find einpoklum's reasoning to be superior.

    – Lightness Races in Orbit
    1 hour ago

















Meyers contradicts StoryTeller's answer, and my tests. It's still good advice, but I find einpoklum's reasoning to be superior.

– Lightness Races in Orbit
1 hour ago






Meyers contradicts StoryTeller's answer, and my tests. It's still good advice, but I find einpoklum's reasoning to be superior.

– Lightness Races in Orbit
1 hour ago


















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55205874%2fdeletion-of-copy-ctor-copy-assignment-public-private-or-protected%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Благоевград Съдържание География | История | Население | Политика | Икономика и инфрастуктура | Здравеопазване | Образование и наука | Култура и забавления | Забележителности | Личности | Литература | Външни препратки | Бележки | Навигация42°01′18.99″ с. ш. 23°05′51″ и. д. / 42.021944° с. ш. 23.0975° и. д.*БлагоевградразширитередактиранеОфициален уебсайт на община БлагоевградНовинарски портал на Благоевград – blagoevgrad.euСайтове за БлагоевградНационален статистически институтdariknews.bgГригоровичъ, Викторъ. „Очеркъ путешествія по Европейской Турціи“. Москва, 1877.Стрезов, Георги. Два санджака от Източна Македония. Периодично списание на Българското книжовно дружество в Средец, кн. XXXVII и XXXVIII, 1891, стр. 18 – 19.Македония. Етнография и статистикаГаджанов, Димитър Г. Мюсюлманското население в Новоосвободените земи, в: Научна експедиция в Македония и Поморавието 1916, Военноиздателски комплекс „Св. Георги Победоносец“, Университетско издателство „Св. Климент Охридски“, София, 1993, стр. 244.паметник на незнайния четник&cd=18&hl=en&ct=clnk&client=firefox-a „История на днешен Благоевград“, взето от www.museumblg.com на 16 март 2010 г.„Справка за населението на град Благоевград, община Благоевград, област Благоевград, НСИ“„The population of all towns and villages in Blagoevgrad Province with 50 inhabitants or more according to census results and latest official estimates“„Ethnic composition, all places: 2011 census“История на Неврокопска епархия.Национален статистически институтМюсюлманско изповедание. Главно мюфтийствоНационален публичен регистър на храмовете в БългарияМюсюлманско изповедание. Главно мюфтийствоwww.dnes.bg Джамията в Благоевград не била паленаwww.sesc-bg.orgСписък на побратимени градовеТехническо побратимяванеГУМ грейва в цветовете на нощен Лас Вегас под името „Largo“, „МОЛ Благоевград“..., в. „Струма“grabo.bgwww.cinemaxbg.comррр4238731-067cad53a-0546-417b-a3d3-51e49b1d2232147736077147736077

What is the best defense strategy for Survival in Grand Theft Auto Online?What is JP used for in Grand Theft Auto Online?How do I setup a Crew HQ in Grand Theft Auto Online?How does stealth work in Grand Theft Auto Online?Is it possible to own more than 10 cars in Grand Theft Auto online?Where to find truck/trailers in Grand Theft Auto OnlineWhat are some of the best missions to do on Grand Theft Auto 5 onlineFastest Car in Grand Theft Auto V PCHow to setup a Crew vs Crew online session in Grand Theft Auto Online?Grand theft auto 5 crossplayingRestart Grand Theft Auto V Online?

How does Billy Russo acquire his 'Jigsaw' mask? Unicorn Meta Zoo #1: Why another podcast? Announcing the arrival of Valued Associate #679: Cesar Manara Favourite questions and answers from the 1st quarter of 2019Why does Bane wear the mask?Why does Kylo Ren wear a mask?Why did Captain America remove his mask while fighting Batroc the Leaper?How did the OA acquire her wisdom?Is Billy Breckenridge gay?How does Adrian Toomes hide his earnings from the IRS?What is the state of affairs on Nootka Sound by the end of season 1?How did Tia Dalma acquire Captain Barbossa's body?How is one “Deemed Worthy”, to acquire the Greatsword “Dawn”?How did Karen acquire the handgun?