namespace cpp {}

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


modern_cpp

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
modern_cpp [2025-05-04 14:35] – [C++23] rrichtermodern_cpp [2026-03-30 11:49] (aktuell) – [C++26] rrichter
Zeile 11: Zeile 11:
 im 3-Jahres-Rhythmus weiterentwickelt (siehe [[https://isocpp.org/std/status|Zeitleiste]]). im 3-Jahres-Rhythmus weiterentwickelt (siehe [[https://isocpp.org/std/status|Zeitleiste]]).
 Aktuelle [[Compiler]] [[http://en.cppreference.com/w/cpp/compiler_support|unterstützen]] „modernes“ Aktuelle [[Compiler]] [[http://en.cppreference.com/w/cpp/compiler_support|unterstützen]] „modernes“
-[[#C++11]](( +[[#C++11]], 
- Frei zugänglich: ISO C++ Working Draft (C++11 WD) = ISO Standard C++ 2011 + +[[#C++14]],  
- Bugfixes [[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf|N3337]] (2012-01-16). +[[#C++17]] (fastvollständig und 
-))+[[#C++20]], 
-[[#C++14]](( +[[#C++23]], 
- N3796. Frei zugänglich: [[http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3797.pdf]] (2013-10-13).\\ +[[#C++26]] 
- Herb Sutter: [[https://isocpp.org/blog/2014/08/we-have-cpp14|We have C++14!]] (2014-08-18). +
-)),  +
-[[#C++17]](+
-DIS N4660. Frei zugänglich: Working Draft [[http://open-std.org/JTC1/SC22/WG21/docs/papers/2017/n4659.pdf|N4659]] (2017-03-21).\\ +
-Herb Sutter: [[https://herbsutter.com/2017/09/06/c17-is-formally-approved/|C++17 is formally approved.]] (2017-09-06)\\ +
-Thomas Köppe: Changes between C++14 and C++17 DIS. [[https://isocpp.org/files/papers/p0636r0.html|P0636R0]] (2017-04-02)\\ +
-http://stackoverflow.com/questions/38060436/what-are-the-new-features-in-c17 (2016-06-30) +
-))+
-[[#C++20]](( +
- ISO International Standard ISO/IEC 14882:2020(E) – Programming Language C++. (2020-12).\\  +
-DIS N4860. Frei zugänglich: Working Draft [[http://open-std.org/JTC1/SC22/WG21/docs/papers/2020/n4861.pdf|N4861]] (2020-04-01).\\ +
-Bryce A. Lelbach:  +
-[[https://www.reddit.com/r/cpp/comments/f47x4o/202002_prague_iso_c_committee_trip_report_c20_is/|C++20 is done!]] (2020-02-15) \\ +
-Herb Sutter: [[https://herbsutter.com/2020/02/15/trip-report-winter-iso-c-standards-meeting-prague/| Trip report: Winter ISO C++ standards meeting (Prague)]] (2020-02-15).\\ +
-Herb Sutter: [[https://herbsutter.com/2020/09/06/c20-approved-c23-meetings-and-schedule-update/| C++20 approved.]] (2020-09-06). +
-))+
-[[#C++23]](( +
- ISO International Standard ISO/IEC 14882:2024(en) – Programming Language C++. (2024-10).\\ +
-Frei zugänglich: Final Working Draft [[https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/n4950.pdf|N4950]] (2023-05-10).\\ +
-https://herbsutter.com/2022/11/12/trip-report-autumn-iso-c-standards-meeting-kona/ (2022-11-12),\\ +
-S.M.Downey: We will all ignore the 2024, yes? https://www.reddit.com/r/cpp/comments/1g7jpbt/isoiec_148822024/ (2024-10-20). +
-)) +
 zunehmend. zunehmend.
 [[cppref>cpp/experimental|Technische Spezifikationen]] (TS) [[cppref>cpp/experimental|Technische Spezifikationen]] (TS)
 und andere Vorschläge und andere Vorschläge
-können in den nächsten [[https://github.com/cplusplus/draft|Entwurf]] (C++26) einfließen. +können in den nächsten [[https://github.com/cplusplus/draft|Entwurf]] (C++29) einfließen. 
 Die folgenden Listen sind unvollständig und in ihrer Reihenfolge subjektiv. Die folgenden Listen sind unvollständig und in ihrer Reihenfolge subjektiv.
  
 ===== C++26 ===== ===== C++26 =====
-+//C++ crossed a Rubicon: it handed us the keys to its own machinery.// 
-> ---+> --- Herb Sutter((Herb Sutter: [[https://herbsutter.com/2026/03/29/c26-is-done-trip-report-march-2026-iso-c-standards-meeting-london-croydon-uk/|C++26 is done.]] Trip Report ISO C++ Meeting London Croydon (2026-03-29).))
  
-  * Static reflection?((Herb Sutter: [[https://herbsutter.com/2025/02/17/trip-report-february-2025-iso-c-standards-meeting-hagenberg-austria/|Trip Report: ISO C++ Standards Meeting Hagenberg]]. (2025-02-17) ))+  * Static reflection 
 +  * kein undefiniertes Verhalten beim Lesen uninitialisierter lokaler Variablen
   * Unterstrich als Platzhalter für unbenutzte Variablen: ''auto [x,_,z] = f();''   * Unterstrich als Platzhalter für unbenutzte Variablen: ''auto [x,_,z] = f();''
   * ''<contracts>'' : Vor- und Nachbedingungen, Zusicherungen   * ''<contracts>'' : Vor- und Nachbedingungen, Zusicherungen
   * ''<debugging>'' : Breakpoints im Quellcode setzen, Debugger-Unterstützung   * ''<debugging>'' : Breakpoints im Quellcode setzen, Debugger-Unterstützung
 +  * ''std::execution'' : Sender/Receiver-Modell für konkurrente und parallele Verarbeitung((Herb Sutter: [[https://herbsutter.com/2024/07/02/trip-report-summer-iso-c-standards-meeting-st-louis-mo-usa/|ISO Trip Report]] St Louis (2024-07-02). ))
   * ''<hive>'' : Container für Elemente, die häufig entstehen und verschwinden (inspiriert von [[https://plflib.org/colony.htm|plf::colony]])   * ''<hive>'' : Container für Elemente, die häufig entstehen und verschwinden (inspiriert von [[https://plflib.org/colony.htm|plf::colony]])
   * ''<linalg>'' : lineare Algebra mit BLAS-Funktionen   * ''<linalg>'' : lineare Algebra mit BLAS-Funktionen
Zeile 66: Zeile 46:
   * ''import std;'' für Module der Standard-Bibliothek   * ''import std;'' für Module der Standard-Bibliothek
   * [[kennen:include:ranges]]: Temporäre Werte in range-based for leben länger ([[https://wg21.link/p2644|P2644]]).   * [[kennen:include:ranges]]: Temporäre Werte in range-based for leben länger ([[https://wg21.link/p2644|P2644]]).
-    * an Python angelehnte Ausgabe ([[https://wg21.link/p2286|P2286]]): ''std::println("{}", std::vector{1,2,3,1});'' -> ''[1, 2, 3, 1]'', ''std::println("{}", std::set{1,2,3,1});'' -> ''{1, 2, 3}'' 
     * ''std::ranges::to<Container>'' ([[https://wg21.link/p1206r7|P1206]])     * ''std::ranges::to<Container>'' ([[https://wg21.link/p1206r7|P1206]])
     * ''std::views::enumerate''((Inbal Levi: https://www.slideshare.net/InbalLevi5/isockona2022tripreportpptx (2023-01-17).)), ''as_const'', ''as_rvalue'', ''cartesian_product'', ''chunk[_by]'', ''join_with'', ''repeat'', ''slide'', ''stride'', ''adjacent[_transform]'', ''pairwise[_transform]'', ''zip[_transform]''     * ''std::views::enumerate''((Inbal Levi: https://www.slideshare.net/InbalLevi5/isockona2022tripreportpptx (2023-01-17).)), ''as_const'', ''as_rvalue'', ''cartesian_product'', ''chunk[_by]'', ''join_with'', ''repeat'', ''slide'', ''stride'', ''adjacent[_transform]'', ''pairwise[_transform]'', ''zip[_transform]''
     * Algorithmen: ''iota()'', ''shift_left()'', ''shift_right()'', ''starts_with()'', ''ends_with()'', ''contains()'', ''fold()''     * Algorithmen: ''iota()'', ''shift_left()'', ''shift_right()'', ''starts_with()'', ''ends_with()'', ''contains()'', ''fold()''
   * [[kennen:include:generator|std::generator<T>]] für Coroutinen   * [[kennen:include:generator|std::generator<T>]] für Coroutinen
-  * [[kennen:include:print|std::print()]] wirkt wie ''%%std::cout << format()%%'', ''std::println()'', formatierte Ausgabe für Ranges+  * [[kennen:include:print|std::print()]] wirkt wie ''%%std::cout << format()%%'', ''std::println()'',  
 +  * an Python angelehnte Ausgabe ([[https://wg21.link/p2286|P2286]]): ''std::print("{}", std::vector{1,2,3,1});'' -> ''[1, 2, 3, 1]'', ''std::print("{}", std::set{1,2,3,1});'' -> ''{1, 2, 3}''
   * ''s.contains("C++")'' für ''string'' und ''string_view''   * ''s.contains("C++")'' für ''string'' und ''string_view''
   * ''std::mdspan'': mehrdimensionale Feldindizes ''a[i,j]''   * ''std::mdspan'': mehrdimensionale Feldindizes ''a[i,j]''
   * [[kennen:include:expected|std::expected<Result,Error>]] und ''std::optional<T>'' mit monadischen Operationen ''transform()'', ''and_then()'', ''or_else()''   * [[kennen:include:expected|std::expected<Result,Error>]] und ''std::optional<T>'' mit monadischen Operationen ''transform()'', ''and_then()'', ''or_else()''
-  * Quelltext in UTF-8 zulässig, Unicode Annex 31 für Bezeichner: ''int 💩 = 23;''+  * Quelltext in UTF-8, Unicode Annex 31 für Bezeichner: ''int 💩 = 23;''
   * Literalsuffix (vorzeichenloser) ''size_t'': ''for (auto i = 0zu, s = v.size(); i < s; ++i) ...''   * Literalsuffix (vorzeichenloser) ''size_t'': ''for (auto i = 0zu, s = v.size(); i < s; ++i) ...''
   * cachefreundliche Container ''std::flat_[multi]map<K,V>'', ''std::flat_[multi]set<T>''   * cachefreundliche Container ''std::flat_[multi]map<K,V>'', ''std::flat_[multi]set<T>''
modern_cpp.1746362157.txt.gz · Zuletzt geändert: von rrichter

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki