El C++-Compiler entlasten unterstützt Optionen, um solche Casts als Kompilierzeitfehler zu melden und die Semantik solcher Casts auf eine sicherere Äquivalenz mit static_cast zu beschränken.
Die entsprechenden Optionen sind:
-cp_nocstylecasts
Der Compiler gibt bei allen C-ähnlichen Casts einen Fehler aus. Casts im C-Stil in C++-Code können potenziell unsicher sein und zu unerwünschtem oder undefiniertem Verhalten führen (z. B. Casting von Zeigern auf nicht verwandte Struktur-/Klassentypen). Diese Option ist nützlich für das Refactoring, um alle diese Casts zu finden und sie durch sicherere C++-Casts wie static_cast zu ersetzen.
-cp_c2staticcasts
Der Compiler wendet die eingeschränktere Semantik von C++ static_cast auf C-artige Casts an. Das Kompilieren von Code mit dieser Option gewährleistet, dass C-style casts mindestens so sicher sind wie C++ static_casts
Diese Option ist nützlich, wenn vorhandener Code eine große Anzahl von C-ähnlichen Casts enthält und die Umstrukturierung jedes Casts in C++-Casts zu viel Aufwand bedeuten würde.
1 Stimmen
Ein Typ in Klammern, z. B. (int)f
0 Stimmen
Oh, ok - er kontrastiert mit dem C++-Stil. Ich weiß so gut wie nichts über C++, außer dem, was ich über C weiß.