Come sbarazzarsi di “specifica eccezione C ++ ignorato” warning
-
01-10-2019 - |
Domanda
Recentemente ho avuto una DLL che è stato implementato da altri. Devo usarlo nella mia applicazione. Nel file di intestazione della loro classe hanno la dichiarazione di funzione
void func1() throw (CCustomException);
Ora, quando compilo che sto ottenendo il messaggio di avviso,
C ++ specifica eccezione ignorata tranne per indicare una funzione non è _declspec (nothrow)
Ho letto il MSDN - Documentazione ma non riusciva a capire chiaramente. Inoltre, non voglio per disattivare l'avviso solo perché sta rivelando. Voglio sapere che cosa sto facendo male, invece di disabilitarlo.
Ho pensato che la mia funzione, dire myfunc()
accesso che func1()
dalla DLL non hai quella lista specifica delle eccezioni. Quindi Ho provato con l'elenco specifico di eccezione corrispondente nella mia funzione anche come,
void myfunc1() throw (CCustomException);
Ma io sono ancora ricevendo l'avviso. Che cosa è che l'avvertimento è tutto e come sbarazzarsi di esso? Sto usando Qt 4.5 in Windows XP.
Soluzione
Ok, è una non-risposta, ma vorrei buttare via la specifica eccezione e non l'uso di nuovo .
EDIT: ho letto troppo veloce, e non ho visto non hai scritto la classe da soli. Miglior modo per sbarazzarsi di avvisi in msvc è via #pragma warning (push), seguita da #pragma warning (disable: xxxx) dove XXXX è il codice di avviso:
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable:xxxx)
#endif
...
#ifdef _MSC_VER
#pragma warning(pop)
#endif
EDIT: E 'perfettamente sicuro per disattivare l'avviso. specifiche eccezioni sono il male, e il compilatore è solo dicendo che li sta invalidante per voi. Anche se si rompe lo standard.
Altri suggerimenti
Si potrebbe provare a giocare con preprocessore:
#ifdef _SOME_MSVC_DEFINE
# define _throw(foo)
#else
# define _throw(foo) throw(foo)
#endif
void myfunc1() _throw (CCustomException);
In alternativa, provate a disabilitare tale avviso a Visual Studio.
Ho trovato questo link , che ho trovato utile. Appena aggiunto se potrebbe essere utile a qualcuno ..