2010-02-12 13 views

Antwort

5

Von der Standard auf dem Stapel zugeordnet:

15.2.4: Der Speicher für die temporäre Kopie der Ausnahme zugeordnet geworfen auf nicht spezifizierte Weise, außer wie in 3.7.3.1 angegeben.

Und 3.7.3.1 sagt:

3.7.3.1: Alle Objekte, die weder dynamische Speicherdauer haben, noch sind statische Speicherdauer lokale haben. Der Speicher für diese Objekte soll für die Dauer des Programms (3.6.2, 3.6.3) dauern.

3

Die Antwort ist "in einem mysteriösen Bereich durch den Compiler verwaltet" - ernsthaft, der Standard gibt nicht an, wo sie gespeichert werden müssen.

0

Ausnahmen werden immer von Wert geworfen so, wenn kein Problem, selbst

1

Ist Küche zitiert aus dem Standard, ist es nicht näher bezeichnet. Die meisten Implementierungen weisen sie dem Heap zu, da sie den Stack-Unwinding-Prozess überleben müssen, der Stack-Frames entfernen kann (wenn man eine Funktion verlässt) oder neue erstellen (Destruktoren aufrufen usw.). GCC verwendet die integrierte Funktion __cxa_allocate_exception für die Zuweisung des Speichers.

Verwandte Themen