Why would a new[] expression ever invoke a destructor?About constructors/destructors and new/delete operators in C++ for custom objectsDoes delete call the destructor?Overloading operator delete in a base classWhen is %destructor invoked in BISON?Why should C++ programmers minimize use of 'new'?Why is ::operator new[] necessary when ::operator new is enough?Why am I permitted to declare an object with a deleted destructor?Does delete[] deallocate memory in one shot after invoking destructors?Why are non-placement `new` and `delete` built into the language and not just regular functions?Why deallocation function is not called when object constructor throw in a new expression?
Why "had" in "[something] we would have made had we used [something]"?
Can disgust be a key component of horror?
Has any country ever had 2 former presidents in jail simultaneously?
Can a college of swords bard use blade flourish on an OA from dissonant whispers?
Temporarily disable WLAN internet access for children, but allow it for adults
How much character growth crosses the line into breaking the character
Does IPv6 have similar concept of network mask?
Why should universal income be universal?
What is the highest possible scrabble score for placing a single tile
Why did the EU agree to delay the Brexit deadline?
What does "Scientists rise up against statistical significance" mean? (Comment in Nature)
Does Doodling or Improvising on the Piano Have Any Benefits?
putting logo on same line but after title, latex
Probability that THHT occurs in a sequence of 10 coin tosses
Did arcade monitors have same pixel aspect ratio as TV sets?
Recommended PCB layout understanding - ADM2572 datasheet
Store Credit Card Information in Password Manager?
Why can Carol Danvers change her suit colours in the first place?
It grows, but water kills it
What exactly color does ozone gas have?
How can mimic phobia be cured?
How to explain what's wrong with this application of the chain rule?
Yosemite Fire Rings - What to Expect?
Calculating total slots
Why would a new[] expression ever invoke a destructor?
About constructors/destructors and new/delete operators in C++ for custom objectsDoes delete call the destructor?Overloading operator delete in a base classWhen is %destructor invoked in BISON?Why should C++ programmers minimize use of 'new'?Why is ::operator new[] necessary when ::operator new is enough?Why am I permitted to declare an object with a deleted destructor?Does delete[] deallocate memory in one shot after invoking destructors?Why are non-placement `new` and `delete` built into the language and not just regular functions?Why deallocation function is not called when object constructor throw in a new expression?
From the C++17 standard (draft here), [expr.new]:
If the new-expression creates an object or an array of objects of class type, access and ambiguity control are done for the allocation function, the deallocation function, and the constructor. If the new-expression creates an array of objects of class type, the destructor is potentially invoked.
Why would new[]
invoke a destructor? It's new, after all. It isn't delete.
c++ c++17 new-operator
add a comment |
From the C++17 standard (draft here), [expr.new]:
If the new-expression creates an object or an array of objects of class type, access and ambiguity control are done for the allocation function, the deallocation function, and the constructor. If the new-expression creates an array of objects of class type, the destructor is potentially invoked.
Why would new[]
invoke a destructor? It's new, after all. It isn't delete.
c++ c++17 new-operator
add a comment |
From the C++17 standard (draft here), [expr.new]:
If the new-expression creates an object or an array of objects of class type, access and ambiguity control are done for the allocation function, the deallocation function, and the constructor. If the new-expression creates an array of objects of class type, the destructor is potentially invoked.
Why would new[]
invoke a destructor? It's new, after all. It isn't delete.
c++ c++17 new-operator
From the C++17 standard (draft here), [expr.new]:
If the new-expression creates an object or an array of objects of class type, access and ambiguity control are done for the allocation function, the deallocation function, and the constructor. If the new-expression creates an array of objects of class type, the destructor is potentially invoked.
Why would new[]
invoke a destructor? It's new, after all. It isn't delete.
c++ c++17 new-operator
c++ c++17 new-operator
edited 1 hour ago
Cody Gray♦
195k35382470
195k35382470
asked 2 hours ago
thbthb
8,66932355
8,66932355
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
If construction of any object in the buffer throws an exception, the previously constructed objects must be destructed. That requires an available destructor.
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55307381%2fwhy-would-a-new-expression-ever-invoke-a-destructor%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
If construction of any object in the buffer throws an exception, the previously constructed objects must be destructed. That requires an available destructor.
add a comment |
If construction of any object in the buffer throws an exception, the previously constructed objects must be destructed. That requires an available destructor.
add a comment |
If construction of any object in the buffer throws an exception, the previously constructed objects must be destructed. That requires an available destructor.
If construction of any object in the buffer throws an exception, the previously constructed objects must be destructed. That requires an available destructor.
edited 1 hour ago
Sombrero Chicken
24.4k33281
24.4k33281
answered 1 hour ago
StoryTellerStoryTeller
103k12215280
103k12215280
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55307381%2fwhy-would-a-new-expression-ever-invoke-a-destructor%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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