8 Punkte von xguru 2022-09-27 | 6 Kommentare | Auf WhatsApp teilen
  • Das Google-Chrome-Team listet rund 40 Probleme auf, die bei der Einführung von C++20 auftreten, und fasst die Lösungen zusammen
  • Ein neuer C++-Standard erscheint alle 3 Jahre, und die erste Anwendung in Chrome erfolgt erst etwa 3 Jahre nach dem Release
  • C++20 bringt viele Änderungen mit sich
    • Wegfall von Unterstützung, Neuordnung von Vergleichsoperatoren, geänderte Aggregationsregeln ..
  • Probleme
    • Googles Style Guide basiert auf C++17
    • Die C++20-Unterstützung von Clang ist unvollständig und erfordert ein neues libc++
    • Windows-Binärdateien werden größer
    • std::iterator wird nicht mehr unterstützt (seit C++17)
    • Neue Keywords wie concept und requires kommen hinzu, was zu Konflikten führen kann, wenn sie als Variablennamen verwendet wurden
    • sowie viele weitere

6 Kommentare

 
galadbran 2022-09-27

Hm … sollte eine Sprache auf dem Niveau von C++ nicht lieber vermeiden, so viele Breaking Changes zu verursachen …? Oder ist das einfach nur meine feste Vorstellung davon …?

 
qwery 2022-09-28

Genau deshalb ist C++ so eine seltsame Sprache.. Die Sprache bekommt mit jeder neuen Version immer mehr dazu – Module, Coroutines und allerlei andere Dinge – und versucht, alles selbst abzudecken. Wenn eine Funktion eingeführt wird, unterstützen die Compiler sie oft erst 4 oder 5 Jahre später. Je nach Compiler gibt es Unterschiede bei dem, was möglich ist, und auch die Syntax unterscheidet sich hier und da ein wenig. Mit jeder neuen Version verschwinden nach und nach selbst Dinge, die man gut und zuverlässig genutzt hat. Die STL wird immer größer, und mit neuen Versionen läuft sie auf älteren Rechnern irgendwann nicht mehr.. Wenn man etwas verwenden will, würde ich eher empfehlen, Go oder Python zu nehmen.

 
heal9179 2022-09-28

Bei den Punkten, bei denen beim Versions-Upgrade die Abwärtskompatibilität nicht gewahrt blieb, handelt es sich meist um Verbesserungen an Features mit undefiniertem Verhalten oder Mängeln.
Funktionen wie Module, Concepts und Coroutines zeigen außerdem, dass sich die Sprache wie andere Sprachen kontinuierlich weiterentwickelt.
Gerade bei Modulen ist das ein schon seit Langem bestehendes Anliegen.

 
functor 2022-09-29

Ich bin mir nicht sicher, ob die Einstellung der Unterstützung für std::iterator unter den von Ihnen erwähnten Fall fällt, in dem „undefiniertes Verhalten oder fehlerhafte Funktionen verbessert“ wurden.

 
heal9179 2022-09-28

Allerdings liegt C++ im Vergleich zu anderen Sprachen vor allem in den folgenden Punkten zurück.

  1. Paketmanager
  2. Fragmentierung der Compiler
  3. Komplexe Build-Verfahren (zusätzliches Lernen von Make und CMake erforderlich)
  4. Gleichgültigkeit der Community

Ich denke, besonders schwer wiegt, dass es aufgrund der Gleichgültigkeit der Community nur sehr wenige hochwertige Artikel gibt und dass die übrigen drei Probleme wegen der geringen Zahl an Nutzern nicht gelöst werden.

 
deokim 2022-09-28
  • Rust