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

What is the term when voters “dishonestly” choose something that they do not want to choose?

Unfrosted light bulb

What does "Four-F." mean?

Does multi-classing into Fighter give you heavy armor proficiency?

How are passwords stolen from companies if they only store hashes?

Have the tides ever turned twice on any open problem?

Can you move over difficult terrain with only 5 feet of movement?

What if (if any) the reason to buy in small local stores?

Existence of a celestial body big enough for early civilization to be thought of as a second moon

Geography in 3D perspective

How can an organ that provides biological immortality be unable to regenerate?

Describing a chess game in a novel

Variable completely messes up echoed string

How to terminate ping <dest> &

Naive Monte Carlo, MCMC and their use in Bayesian Theory

Calculate the frequency of characters in a string

Does .bashrc contain syntax errors?

Matrix using tikz package

Suggestions on how to spend Shaabath (constructively) alone

Why is there so much iron?

What are substitutions for coconut in curry?

Usage and meaning of "up" in "...worth at least a thousand pounds up in London"

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

Is there a hypothetical scenario that would make Earth uninhabitable for humans, but not for (the majority of) other animals?



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
    14 hours ago






  • 10





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

    – einpoklum
    13 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
    14 hours ago






  • 10





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

    – einpoklum
    13 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 7 hours ago









StoryTeller

102k12215279




102k12215279










asked 14 hours ago









SajalSajal

613515




613515












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

    – Klaus
    14 hours ago






  • 10





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

    – einpoklum
    13 hours ago

















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

    – Klaus
    14 hours ago






  • 10





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

    – einpoklum
    13 hours ago
















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

– Klaus
14 hours ago





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

– Klaus
14 hours ago




10




10





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

– einpoklum
13 hours ago





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

– einpoklum
13 hours ago












3 Answers
3






active

oldest

votes


















15















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




















  • 4





    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
    7 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
    2 hours ago











  • @aschepler Fair does

    – Lightness Races in Orbit
    2 hours ago











  • @aschepler: Examples?

    – einpoklum
    2 hours ago











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

    – aschepler
    2 hours ago


















11















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
    7 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
    2 hours 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









15















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




















  • 4





    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
    7 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
    2 hours ago











  • @aschepler Fair does

    – Lightness Races in Orbit
    2 hours ago











  • @aschepler: Examples?

    – einpoklum
    2 hours ago











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

    – aschepler
    2 hours ago















15















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




















  • 4





    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
    7 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
    2 hours ago











  • @aschepler Fair does

    – Lightness Races in Orbit
    2 hours ago











  • @aschepler: Examples?

    – einpoklum
    2 hours ago











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

    – aschepler
    2 hours ago













15












15








15








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 7 hours ago

























answered 13 hours ago









einpoklumeinpoklum

35.8k27131257




35.8k27131257







  • 4





    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
    7 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
    2 hours ago











  • @aschepler Fair does

    – Lightness Races in Orbit
    2 hours ago











  • @aschepler: Examples?

    – einpoklum
    2 hours ago











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

    – aschepler
    2 hours ago












  • 4





    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
    7 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
    2 hours ago











  • @aschepler Fair does

    – Lightness Races in Orbit
    2 hours ago











  • @aschepler: Examples?

    – einpoklum
    2 hours ago











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

    – aschepler
    2 hours ago







4




4





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
7 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
7 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
2 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
2 hours ago













@aschepler Fair does

– Lightness Races in Orbit
2 hours ago





@aschepler Fair does

– Lightness Races in Orbit
2 hours ago













@aschepler: Examples?

– einpoklum
2 hours ago





@aschepler: Examples?

– einpoklum
2 hours ago













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

– aschepler
2 hours ago





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

– aschepler
2 hours ago













11















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
    7 hours ago















11















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
    7 hours ago













11












11








11








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 7 hours ago

























answered 14 hours ago









StoryTellerStoryTeller

102k12215279




102k12215279












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

    – Lightness Races in Orbit
    7 hours ago

















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

    – Lightness Races in Orbit
    7 hours ago
















If you want backwards compatibility then this is a must.

– Lightness Races in Orbit
7 hours ago





If you want backwards compatibility then this is a must.

– Lightness Races in Orbit
7 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
    2 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
    2 hours 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 2 hours ago









Lightness Races in Orbit

293k54476809




293k54476809










answered 2 hours 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
    2 hours 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
    2 hours 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
2 hours 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
2 hours 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

How to create a command for the “strange m” symbol in latex? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)How do you make your own symbol when Detexify fails?Writing bold small caps with mathpazo packageplus-minus symbol with parenthesis around the minus signGreek character in Beamer document titleHow to create dashed right arrow over symbol?Currency symbol: Turkish LiraDouble prec as a single symbol?Plus Sign Too Big; How to Call adfbullet?Is there a TeX macro for three-legged pi?How do I get my integral-like symbol to align like the integral?How to selectively substitute a letter with another symbol representing the same letterHow do I generate a less than symbol and vertical bar that are the same height?

Category:Tremithousa Media in category "Tremithousa"Navigation menuUpload media34° 49′ 02.7″ N, 32° 26′ 37.32″ EOpenStreetMapGoogle EarthProximityramaReasonatorScholiaStatisticsWikiShootMe

Dokschytsy (Steed) Kwelen | NawigatsjuunBelarus: Vitebsk Region, citypopulation.de