Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision |
modern_cpp [2023-02-23 10:29] – [C++17] rrichter | modern_cpp [2024-02-08 17:03] – [C++23] rrichter |
---|
| |
* ''import std;'' für Module der Standard-Bibliothek | * ''import std;'' für Module der Standard-Bibliothek |
* 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]]). |
* ''std::ranges::to<Container>'', ''std::views::enumerate''((Inbal Levi: https://www.slideshare.net/InbalLevi5/isockona2022tripreportpptx (2023-01-17).)) und weitere Adapter: ''as_const'', ''as_rvalue'', ''cartesian_product'', ''chunk[_by]'', ''join_with'', ''repeat'', ''slide'', ''stride'', ''adjacent[_transform]'', ''pairwise[_transform]'', ''zip[_transform]'' | * ''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]'' |
* Algorithmen: ''iota()'', ''shift_left()'', ''shift_right()'', ''starts_with()'', ''ends_with()'', ''contains()'', ''fold()'' | * Algorithmen: ''iota()'', ''shift_left()'', ''shift_right()'', ''starts_with()'', ''ends_with()'', ''contains()'', ''fold()'' |
| * an Python angelehnte Ausgabe mit ''format()'' |
* ''std::generator<T>'' für Coroutinen | * ''std::generator<T>'' für Coroutinen |
* ''std::print()'' wirkt wie ''%%std::cout << format()%%'', ''std::println()'', formatierte Ausgabe für Ranges | * ''std::print()'' wirkt wie ''%%std::cout << format()%%'', ''std::println()'', formatierte Ausgabe für Ranges |
[[https://devblogs.microsoft.com/cppblog/standard-c20-modules-support-with-msvc-in-visual-studio-2019-version-16-8/|Visual C++]] und | [[https://devblogs.microsoft.com/cppblog/standard-c20-modules-support-with-msvc-in-visual-studio-2019-version-16-8/|Visual C++]] und |
[[https://gcc.gnu.org/wiki/cxx-modules|GCC]] | [[https://gcc.gnu.org/wiki/cxx-modules|GCC]] |
experimentieren mit Modulen: [[howto:modules_gcc11|Beispiel mit g++ 11]]. | experimentieren mit Modulen: [[howto:modules_gcc11|Beispiel mit g++ 11]], |
| [[https://github.com/royjacobson/modules-report|C++20 Modules Status Report]]. |
)) überwinden Probleme des ''#include''-Mechanismus (Präprozessor, Makros). ''import''-Anweisungen beschleunigen das Übersetzen, übergangsweise auch ''import <iostream>;'' Die Modularisierung der Standard-Bibliothek erfolgt erst mit C++23 ([[https://wg21.link/P0581|P0581]]). | )) überwinden Probleme des ''#include''-Mechanismus (Präprozessor, Makros). ''import''-Anweisungen beschleunigen das Übersetzen, übergangsweise auch ''import <iostream>;'' Die Modularisierung der Standard-Bibliothek erfolgt erst mit C++23 ([[https://wg21.link/P0581|P0581]]). |
* [[kennen:include:ranges]] modernisiert [[kennen:include:algorithm]], z.B. ''std::ranges::sort(v);'' kombinierbare Views ''filter(odd) | transform(sqr) | take(3)'' verarbeiten Wertfolgen „lazy“((Von [[https://github.com/ericniebler/range-v3|range-v3]] wurde (bisher) nur eine kleine Auswahl übernommen. Wichtige, nützliche Bausteine wie ''action::sort'', ''unique'', ''enumerate'', ''zip'' oder ''to<std::vector>'' fehlen. Siehe auch: [[https://github.com/cor3ntin/rangesnext|rangesnext]].)). | * [[kennen:include:ranges]] modernisiert [[kennen:include:algorithm]], z.B. ''std::ranges::sort(v);'' kombinierbare Views ''filter(odd) | transform(sqr) | take(3)'' verarbeiten Wertfolgen „lazy“((Von [[https://github.com/ericniebler/range-v3|range-v3]] wurde (bisher) nur eine kleine Auswahl übernommen. Wichtige, nützliche Bausteine wie ''action::sort'', ''unique'', ''enumerate'', ''zip'' oder ''to<std::vector>'' fehlen. Siehe auch: [[https://github.com/cor3ntin/rangesnext|rangesnext]].)). |