raii

Die Initialisierung der Ressourcenerfassung (RAII) ist ein gängiges Idiom in C ++ zur Verwaltung der Lebensdauer von Ressourcen, einschließlich Speicherzuordnungen, Dateihandles oder Datenbankverbindungen. Kurz gesagt, jede Ressource sollte in eine besitzende Klasse eingeschlossen sein, deren Lebensdauer die Lebensdauer der Ressource steuert.
1
Antwort

Gibt es Untersuchungen zur Verwendung von RAII in GC-Sprachen?

Hinweis: Objektlebensdauer RAII nicht mit / mit Blockbereich RAII Es scheint, als wäre es möglich, eine zusätzliche GC-Kategorie, kurzlebige Objekte (gc-Kategorie etwas häufiger), langlebige Objekte (gc-Kategorie seltener) und Ressourcenobjek...
10.09.2010, 15:14
6
Antworten

C # - Werden Objekte sofort zerstört, wenn sie den Bereich verlassen?

Kann ich darauf vertrauen, dass ein Objekt zerstört wird und sein Destruktor sofort aufgerufen wird, wenn es in C # den Gültigkeitsbereich verlässt? Ich denke, da viele gängige Programmierpraktiken (z. B. Transaktionsobjekte) von diesem Verha...
26.09.2009, 09:45
4
Antworten

Lokale Variable Bereichsfrage

Warum gibt der folgende Code "xxY" aus? Sollten lokale Variablen nicht im Rahmen der gesamten Funktion leben? Kann ich ein solches Verhalten verwenden oder wird dies in zukünftigen C ++ - Standards geändert? Ich dachte, dass nach C ++ Standar...
07.09.2009, 10:37
4
Antworten

Nützlichkeit von RAII ohne Ausnahmen

Ich habe kürzlich über RAII in C ++ gefunden und die meisten Beispiele von RAII sprechen über die Sicherheit von Ausnahmen. Wie Sie immer Ressourcen freigeben können, selbst wenn eine Ausnahme ausgelöst würde. Die Frage, die ich habe, ist, ob...
17.07.2013, 19:26
4
Antworten

Warum funktioniert das Dispose-Muster in C # nicht wie RAII in C ++?

Also habe ich gerade über das RAII Muster für nicht Müll-gesammelte Sprachen gelesen, und dies Abschnitt fiel mir ins Auge:    Diese Einschränkung tritt normalerweise auf, wenn benutzerdefinierte Klassen entwickelt werden. Benutzerdefinie...
29.08.2013, 14:38
3
Antworten

Ermitteln von aktiven Ausnahmen im Destruktor

Ich habe eine Klasse, die RAII zur Bereinigung verwendet, falls etwas schief geht. Das bedeutet, dass die Klasse ein Flag enthält, das angibt, ob die Arbeit abgeschlossen wurde. Wenn dieses Flag beim Aufruf des Konstruktors nicht gesetzt ist, fü...
01.04.2011, 09:34
1
Antwort

Erzwingt die Reihenfolge, in der Strukturfelder gelöscht werden

Ich implementiere ein Objekt, das mehrere Ressourcen besitzt, die von C-Bibliotheken über FFI erstellt wurden. Um zu bereinigen, was bereits gemacht wurde, wenn der Konstruktor in Panik gerät, wickle ich jede Ressource in eine eigene Struktur un...
09.12.2016, 05:15
6
Antworten

Wie behandelt man das Fehlschlagen der Freigabe einer Ressource, die in einem Smart Pointer enthalten ist?

Wie sollte ein Fehler bei der Ressourcenfreigabe behandelt werden, wenn der Objekt, das die Ressource darstellt, ist in einem gemeinsamen Zeiger enthalten? EDIT 1:    Um diese Frage konkreter zu formulieren: Viele C-Style-Interfaces   ei...
16.05.2010, 19:39
2
Antworten

RAII und abgeleitete Template-Argumente

Hier ist ein Problem, auf das ich oft mit RAII stoße. Ich habe mich gefragt, ob jemand eine gute Lösung dafür hat. Beginnen Sie mit Ihrer standardmäßigen RAII-Dienstprogrammklasse: %Vor% Jetzt muss ich aus verschiedenen Gründen eine Vorla...
14.07.2014, 18:30
4
Antworten

Destruktoren, die nicht aufgerufen werden, wenn eine native (C ++) Ausnahme an die CLR-Komponente weitergegeben wird

Wir haben eine große Menge nativen C ++ - Code, der in DLLs kompiliert ist. Dann haben wir ein paar DLLs, die C ++ / CLI-Proxy-Code enthalten, um die C ++ - Schnittstellen zu umbrechen. Außerdem haben wir C # -Code, der in C ++ / CLI-Wrapp...
23.03.2010, 18:27