C++Guns – RoboBlog blogging the bot

25.02.2020

C++ Guns: Special Members

Filed under: Allgemein — Tags: — Thomas @ 11:02

Engineering Distinguished Speaker Series: Howard Hinnant

Make yourself pretty coloring

special_members

special_members.ods

19.02.2020

Graph - Goldberg-Tarjan - Preflow-push Visualisierung

Filed under: Allgemein — Thomas @ 15:02

preflowpush_visu

06.02.2020

C++ Guns: Style Guide

Filed under: Allgemein — Tags: — Thomas @ 19:02

Nicht zwingend HPC, ehr allgemein.


Strings werden mit std::string (pure C++) und/oder QString (Qt) dargestellt. Der C-String (char*) wird nicht mehr benutzt.

Das Konzept des C-Strings ist, die einzelnen Zeichen aneinander zu reihen und das Ende des Strings durch ein besonders ausgezeichnetes Zeichen darstellten: NULL. Das NULL Zeichen nennt man auch Sentinel. Dieses Prinzip ist auch 2020 Fehlerquelle #1 in Software.

In C++ werden Strings durch eine Aneinanderreihung von Zeichen dargestellt und zusätzlich die Länge des Strings separat gespeichert. Hierfür wird die Klasse std::string benutzt, welche intern 8-Byte Zeichen benutzt. Für GUI Anwendungen wird die Klasse QString verwendet, welche 16-Byte Zeichen benutzt. Um auch "Sonderzeichen" wie Umlaute oder EUR immer korrekt darzustellen.

Das Konzept des Sentinels ist nicht schlecht, es wurde sogar in C++17 standardisiert. Damit war es möglich in C++20 "Ranges" einzuführen. Eine grundsätzlich neue Technologie in der std C++ Welt.


Powered by WordPress