__declspec(nothrow)
Nach oben zu Schlüsselwörter alphabetisch - Index
Kategorie
Modifizierer, Zusätzliche Schlüsselwörter, Speicherklassen-Spezifizierer
Syntax
__declspec( nothrow ) deklarator
Dies ist ein erweitertes __declspec-Attribut, das sich in der Deklaration von Funktionen verwenden lässt. Mit diesem Attribut kann angegeben werden, dass in der deklarierten Funktion und allen in dieser aufgerufenen Routinen keine Exception auftritt. Beim synchronen Exception-Behandlungsmodell (aktuell das Standardmodell) kann der Compiler die Mechanismen der Lebenszyklusprotokollierung bestimmter starrer Objekte in einer solchen Funktion eliminieren und dadurch die Codegröße beträchtlich verringern.
Die folgenden drei Deklarationen sind gleichbedeutend:
#define WINAPI __declspec(nothrow) __stdcall
void WINAPI foo1();
void __declspec(nothrow) __stdcall foo2();
void __stdcall foo3() throw();
Die Deklaration void __declspec(nothrow) __stdcall foo2(); hat den Vorteil, dass Sie eine API-Definition (z. B. die mit #define definierte) verwenden können, um auf einfache Weise nothrow für eine Gruppe von Funktionen anzugeben. Die dritte Deklaration void __stdcall foo3() throw();entspricht dem C++-Standard.