Mehr Lambda-Features mit C++20

Wenn Lambda-Ausdrücke zustandslos sind, besitzen sie einen Default-Konstruktor und einen Copy-Zuweisungsoperator. Darüber hinaus können sie in C++20 in nicht evaluierten Kontexten verwendet werden, und der C++20-Compiler stellt fest, wenn der this-Zeiger implizit kopiert wird. Das heißt, dass eine häufige Ursache von undefinierten Verhalten mit Lambdas der Vergangenheit angehört.

Hier geht's direkt zum Artikel auf Heise Developer: https://heise.de/-4865889.

Tags: Lambdas, C++20
Gelesen: 803

Mächtigere Lambda-Ausdrücke mit C++20

Dank dem C++20-Standard werden Lambda-Ausdrücke mächtiger. Von den vielen Verbesserungen rund um Lambda-Ausdrücke sind Template-Parameter mein Favorit.

Hier geht es direkt zum Artikel auf Heise Developer: https://heise.de/-4860846.

Gelesen: 849

Verschiedene Template Verbesserungen mit C++20

Zugegeben, ich stelle in dem heutigen Artikel ein paar kleine Verbesserungen zu Templates und zu C++20 im Allgemeinen vor. Obwohl diese Verbesserungen nicht so beeindruckend wirken, wird durch sie C++20 konsistenter und damit auch weniger fehleranfällig, wenn es um das generische Programmieren geht.

Hier geht es direkt zum Artikel auf Heise Developer: https://heise.de/-4852396.

Gelesen: 688

Die Lösung des Static Initialization Order Fiasco mit C++20

Dem Wortlaut der FAQ von isocppp.org folgend, ist das Static Initialization Order Fiasco "a subtle way to crash your program". Die FAQ geht noch weiter: "The static initialization order problem is a very subtle and commonly misunderstood aspect of C++." Genau mit diesem subtilen und missverstandenen Aspekt von C++ befasst sich mein heutiger Artikel.

Hier geht es direkt zum Artikel auf Heise Developer: https://heise.de/-4847039.

Gelesen: 794

Zwei neue Schlüsselwörter in C++20: consteval und constinit

Mit C++20 erhalten wir zwei neue Schlüsselwörter: consteval und constinit. Das erste erzeugt eine Funktion, die zur Compilezeit ausgeführt wird, das zweite sichert zu, dass eine Variable zur Compilezeit initialisiert wird.

Hier geht es direkt zum Artikel auf Heise Developer: https://heise.de/-4841497.

Tags: C++20
Gelesen: 708

C++20: Designated Initializers

Designated Initialization ist eine Erweiterung von Aggregate Initialization und ermöglicht es, die Mitglieder einer Klasse direkt mithilfe ihres Namens zu initialisieren.

Hier geht es direkt zum Artikel auf Heise Developer: .

Gelesen: 767

C++20: Optimierte Vergleiche mit dem Spaceship Operator

Mit diesem Artikel schließe ich meine Miniserie zum Drei-Weg-Vergleichsoperator mit ein paar subtilen Feinheiten ab. Sie betreffen den durch den Compiler erzeugten Operator == und != sowie das Zusammenspiel der klassischen Vergleichsoperatoren mit dem Drei-Weg-Vergleichsoperator.

Hier geht's direkt zum Artikel auf Heise Developer: .

Gelesen: 817

C++20: Mehr Details zum Spaceship Operator

Der Compiler führt beim Erzeugen der sechs Vergleichsoperatoren einen sehr smarten Job aus. Letztlich erzeugt er gratis intuitive und effiziente Vergleichsoperatoren. Eine genauere Betrachtung des Spaceship Operator.

Hier geht es direkt zum Artikel auf Heise Devloper: .

Gelesen: 764

C++20: Der Drei-Weg-Vergleichsoperator

Der Drei-Weg-Vergleichsoperator <=> wird auch gerne Spaceship Operator genannt. Er lässt sich direkt definieren oder vom Compiler automatisch erzeugen.

Hier geht's direkt zum Artikel auf Heise Developer:https://heise.de/-4782690.

Gelesen: 816

Abonniere den Newsletter (+ pdf Päckchen)

Beiträge-Archiv

Sourcecode

Neuste Kommentare