__declspec(nothrow)

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Liste alphabétique des mots clés - Index


Catégorie

Modificateurs, Extensions des mots clés, Spécificateurs de classe de stockage

Syntaxe

__declspec( nothrow ) déclarateur

C'est un attribut étendu __declspec qui peut être utilisé dans la déclaration des fonctions. Cet attribut indique au compilateur que la fonction déclarée et les fonctions qu'elle appelle ne déclenchent jamais d'exception. Avec le modèle de gestion des exceptions synchrone, maintenant utilisé par défaut, le compilateur peut éliminer les mécanismes de suivi de la durée de vie de certains objets tels qu'une fonction et réduit sensiblement la taille du code.

Les trois instructions suivantes sont équivalentes :

#define WINAPI __declspec(nothrow) __stdcall 
void WINAPI foo1();
void __declspec(nothrow) __stdcall foo2();
void __stdcall foo3() throw();

L'utilisation de void __declspec(nothrow) __stdcall foo2(); présente l'avantage de pouvoir utiliser une définition API, comme celle illustrée par l'instruction #define, pour spécifier facilement nothrow sur un ensemble de fonctions. La troisième déclaration, void __stdcall foo3() throw(); est la syntaxe définie par le standard C++.

Voir aussi