Hallo liebe C++ Programmierer,
ich programmiere Momentan eine Speicherklasse, die Speicherlecks durch die Verwendung von "new" verhindern soll. Die wichtigstem Elemente der Klasse:
- Eine Membervariable (anfangs auf 0 gesetzt) die anzeigt, wie oft speicher Reserviert wurde
- Funktion zum reservieren von Speicher (erhöht die Membervariable um 1)
- Funktion zum freigeben von Speicher (erniedrigt die Membervariable um 1)
- Destruktor, der prüft ob die Membervariable 0 ist. Wenn nein, dann kompiliervorgang abbrechen
Wie man schon an dem Fettgedrucktem Teil erkennen kann, ist meine Frage nun: Wie teilt man dem Compiler mit, falls die Membervariable nicht 0 ist, dass er den Kompiliervorgang doch bitte abbrechen möchte?
|
C-/C++-Quelltext
|
1
2
3
|
#if Membervariable != 0
#error "Noch nicht freigegebener Speicher vorhanden!"
#endif
|
So kann es ja nicht funktionieren, da der Kompiler ja erst die Präprozessor-Direktiven prüft und dann mit der Übersetzung des Quellcodes fortfährt.
Gibt es überhaupt eine Möglichkeit, das Programm so abzubrechen oder muss ich die Memorylecks in kauf nehmen und einfach eine Warnung mit "cerr" ausgeben, dass nicht freigegebener Speicher vorhanden ist?
Vielen Dank schon mal für eure Hilfe
Grüße bennichamp