{"id":4100,"date":"2019-01-30T21:05:44","date_gmt":"2019-01-30T20:05:44","guid":{"rendered":"http:\/\/roboblog.fatal-fury.de\/?p=4100"},"modified":"2019-05-24T14:23:10","modified_gmt":"2019-05-24T13:23:10","slug":"c-guns-c20-aggregates-can-no-longer-declare-constructors","status":"publish","type":"post","link":"http:\/\/roboblog.fatal-fury.de\/?p=4100","title":{"rendered":"C++ Guns: C++20 Aggregates can no longer declare constructors (schon wieder anders...)"},"content":{"rendered":"<p>Ab GCC 9.<br \/>\n<a href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2018\/p1008r1.pdf\">P1008 Prohibit aggregates with user-declared constructors<\/a><br \/>\n<a href=\"https:\/\/youtu.be\/ZfP4VAK21zc?t=3077\">Initialization in modern C++ - Timur Doumler - Meeting C++ 2018<\/a><\/p>\n<p>Das Thema ist ziemlich lang und eigentlich total \u00fcberfl\u00fcssig. Wenn nicht immer die ganzen Altlasten da w\u00e4ren ... but we have to deal with it. Es gibt gen\u00fcgend Artikel im Internet wie gut oder schlecht die Initialisierung in C++ kaputt ist. F\u00fcr einen guten \u00dcberblick, und wie man versucht es zu reparieren, empfehle ich obiges verlinktes PDF.<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\nstruct A {\r\n    A() = delete;\r\n};\r\n\r\nauto func() {\r\n    \/\/ ok does not compile\r\n    \/\/ A a; \r\n    \/\/ compiles in c++17 but not in 20\r\n    A a{};      \/\/ error: use of deleted function 'A::A()'\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Ab GCC 9. P1008 Prohibit aggregates with user-declared constructors Initialization in modern C++ - Timur Doumler - Meeting C++ 2018 Das Thema ist ziemlich lang und eigentlich total \u00fcberfl\u00fcssig. Wenn nicht immer die ganzen Altlasten da w\u00e4ren ... but we have to deal with it. Es gibt gen\u00fcgend Artikel im Internet wie gut oder schlecht [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[17],"class_list":["post-4100","post","type-post","status-publish","format-standard","hentry","category-allgemein","tag-cpp"],"_links":{"self":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts\/4100","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4100"}],"version-history":[{"count":5,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts\/4100\/revisions"}],"predecessor-version":[{"id":4276,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts\/4100\/revisions\/4276"}],"wp:attachment":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4100"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}