nothrow
(C++)
Sezione specifica Microsoft
Attributo __declspec
esteso che può essere usato nella dichiarazione di funzioni.
Sintassi
return-type
__declspec(nothrow)
[call-convention] function-name ([argument-list])
Osservazioni:
È consigliabile che tutto il nuovo codice usi l'operatore noexcept
anziché __declspec(nothrow)
.
L'attributo indica al compilatore che la funzione dichiarata e le funzioni che tale funzione chiama non generano mai un'eccezione. Tuttavia, non impone la direttiva . In altre parole, non viene std::terminate
mai richiamato, a differenza noexcept
di o in std:c++17
modalità (Visual Studio 2017 versione 15.5 e successive), throw()
.
Con il modello di gestione delle eccezioni sincrona, per impostazione predefinita il compilatore può ora eliminare i meccanismi che consentono di tenere traccia della durata di alcuni oggetti non rimovibili in tale funzione, riducendo notevolmente la dimensione del codice. Data la direttiva del preprocessore seguente, le tre dichiarazioni di funzione seguenti sono equivalenti in /std:c++14
modalità:
#define WINAPI __declspec(nothrow) __stdcall
void WINAPI f1();
void __declspec(nothrow) __stdcall f2();
void __stdcall f3() throw();
In /std:c++17
modalità non throw()
equivale agli altri che usano __declspec(nothrow)
perché viene std::terminate
richiamata se viene generata un'eccezione dalla funzione .
La void __stdcall f3() throw();
dichiarazione usa la sintassi definita dallo standard C++. In C++17 la throw()
parola chiave è stata deprecata.
Fine sezione specifica Microsoft
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per