__declspec(nothrow)

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

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.

Siehe auch