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?

How do you respond to a colleague from another team when they're wrongly expecting that you'll help them?

Limits and Infinite Integration by Parts

What exactly color does ozone gas have?

Why is short-wave infrared portion of electromagnetic spectrum so sensitive to fire?

Lowest total scrabble score

What are the balance implications behind making invisible things auto-hide?

Why did the EU agree to delay the Brexit deadline?

Can a stoichiometric mixture of oxygen and methane exist as a liquid at standard pressure and some (low) temperature?

Invalid date error by date command

Are Captain Marvel's powers affected by Thanos' actions in Infinity War

How can I write humor as character trait?

PTIJ: Haman's bad computer

What to do when eye contact makes your subordinate uncomfortable?

Is there a way to get `mathscr' with lower case letters in pdfLaTeX?

Does the Linux kernel need a file system to run?

Can a college of swords bard use blade flourish on an OA from dissonant whispers?

The IT department bottlenecks progress, how should I handle this?

How to cover method return statement in Apex Class?

Fear of getting stuck on one programming language / technology that is not used in my country

Do we have to expect a queue for the shuttle from Watford Junction to Harry Potter Studio?

What should you do if you miss a job interview (deliberately)?

User Story breakdown - Technical Task + User Feature

How much character growth crosses the line into breaking the character

Why would a new[] expression ever invoke a destructor?



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?













8















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.










share|improve this question




























    8















    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.










    share|improve this question


























      8












      8








      8








      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.










      share|improve this question
















      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






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 1 hour ago









      Cody Gray

      195k35382470




      195k35382470










      asked 1 hour ago









      thbthb

      8,66932355




      8,66932355






















          1 Answer
          1






          active

          oldest

          votes


















          12














          If construction of any object in the buffer throws an exception, the previously constructed objects must be destructed. That requires an available destructor.






          share|improve this answer
























            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%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









            12














            If construction of any object in the buffer throws an exception, the previously constructed objects must be destructed. That requires an available destructor.






            share|improve this answer





























              12














              If construction of any object in the buffer throws an exception, the previously constructed objects must be destructed. That requires an available destructor.






              share|improve this answer



























                12












                12








                12







                If construction of any object in the buffer throws an exception, the previously constructed objects must be destructed. That requires an available destructor.






                share|improve this answer















                If construction of any object in the buffer throws an exception, the previously constructed objects must be destructed. That requires an available destructor.







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited 1 hour ago









                Sombrero Chicken

                24.4k33281




                24.4k33281










                answered 1 hour ago









                StoryTellerStoryTeller

                103k12215280




                103k12215280





























                    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%2f55307381%2fwhy-would-a-new-expression-ever-invoke-a-destructor%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

                    Станькаў Зьмест Назва | Гісторыя | Насельніцтва | Турыстычная інфармацыя | Галерэя | Асобы | Заўвагі | Крыніцы | Літаратура | Вонкавыя спасылкі | Навігацыйнае мэню53°37′48″ пн. ш. 27°13′40″ у. д. / 53.63° пн. ш. 27.22778° у. д. / 53.63; 27.2277853°37′48″ пн. ш. 27°13′40″ у. д. / 53.63° пн. ш. 27.22778° у. д. / 53.63; 27.22778djvu"Бабёнка – это я понимаю!". Як русіфікавалі тапонімы.Святыя руіны ажываюць210Станькаўв. СтанькаваСтаньково: история и новости - сайт деревниСтанькава: сядзіба Гутэн-Чапскіхррр

                    J. J. Abrams Índice Traxectoria | Filmografía | Premios | Notas | Véxase tamén | Menú de navegacióne"J.J. Abrams: Biography"Arquivado"'Star Trek' sequel on track"Arquivado"J.J. Abrams Producing Samurai Jack Movie"Arquivado"EXCLUSIVE: J.J. Abrams Goes Into Warp Speed with Star Trek and Beyond"Arquivado"David Semel To Direct Jonah Nolan/J.J. Abrams' CBS Pilot 'Person Of Interest'"Arquivado"Fox orders J.J. Abrams pilot 'Alcatraz'"ArquivadoJ. J. AbramsJ. J. AbramsWorldCat81800131p24091041000XX116709414031616ma11226833654496ID052246713376222X511412nm00091900000 0001 1772 5428no98124254ID0000002883100650044xx0054597000141374297344064w64f2mjx14255303415344

                    Першая сусьветная вайна Зьмест Чыньнікі | Асноўныя падзеі | Беларусь у гады вайны | Балянс вайны | Глядзіце таксама | Крыніцы | Вонкавыя спасылкі | Навігацыйнае мэнюПершая сусьветная вайна: памяць павінна жыць124 (27489)41990-763xЗападный мир отмечает 90 лет со дня окончания Первой мировой войныПершая сусьветная вайнаСпадчына Першай сусьветнай вайныГісторыя вайныАрхіў дакумэнтаў вайныМапы Эўропы ў ходзе вайныГісторыя пад знакам Пагоні/Першая сусветная вайна і Беларусь