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: 3882

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.

Gelesen: 3597

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: 3618

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: .

Tags: Spaceship
Gelesen: 3876

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: .

Tags: Spaceship
Gelesen: 3962

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.

Tags: Spaceship
Gelesen: 4058

C++20: Weitere offene Fragen zu Modulen

Die bisherigen vier Artikel zu Modulen gingen auf deren Grundlagen ein. Daher gibt es nur noch wenige Fragen zu Modulen zu beantworten. Genau diese Fragen adressiere ich in dem heutigen Artikel: Templates und Module, das Linkage von Modulen und Header Units.

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

Tags: Module
Gelesen: 3606

C++20: Module strukturieren

Wenn das Modul größer wird, sollte es in handliche Komponenten aufgeteilt werden. C++20 bietet dafür zwei Möglichkeiten an: Submodule und Partitionen. In diesem Artikel schaue ich mir beide Optionen genauer an.

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

Tags: Module
Gelesen: 3808

C++20: Module Interface Unit und Module Implementation Unit

Dank Module Interface Unit und Module Implementation Unit lässt sich die Definition eines Moduls in sein Interface und seine Implementierung aufteilen. Der heutige Artikel zeigt, wie sich das umsetzen lässt.

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

Tags: Module
Gelesen: 3866

Mentoring

Stay Informed about my Mentoring

 

Rezensionen

Tutorial

Besucher

Heute 217

Gestern 2405

Woche 8423

Monat 35740

Insgesamt 3888454

Aktuell sind 33 Gäste und keine Mitglieder online

Kubik-Rubik Joomla! Extensions

Abonniere den Newsletter (+ pdf Päckchen)

Beiträge-Archiv

Sourcecode

Neuste Kommentare