¿Cómo deshacerse de la “especificación de excepciones C ++ ignorado” advertencia
-
01-10-2019 - |
Pregunta
Hace poco consiguió un DLL que se ha implementado por otros. Tengo que usarlo en mi solicitud. En el archivo de cabecera de su clase tienen la declaración de la función
void func1() throw (CCustomException);
Ahora cuando compilo que estoy recibiendo la advertencia,
especificación de excepciones C ++ ignorado salvo para indicar una función no es _declspec (nothrow)
MSDN - Documentación pero no podía entender con claridad. Además, no quiero desactivar la advertencia sólo porque está apareciendo. Quiero saber lo que estoy haciendo mal en lugar de su desactivación.
pensé que mi función, decir myfunc()
acceder a ese func1()
de la DLL no tiene esa lista especificación de excepción. Por lo tanto he intentado tener la lista de especificaciones correspondientes excepción en mi función como también,
void myfunc1() throw (CCustomException);
Pero todavía estoy recibiendo la advertencia. ¿Cuál es la advertencia de que se trata y cómo deshacerse de él? Estoy usando Qt 4.5 en Windows XP.
Solución
Ok, es un no-respuesta, pero me gustaría tirar la especificación de excepción y nunca uso de nuevo.
EDIT: He leído demasiado rápido, y no vi que no escribió la clase sí mismo. Mejor manera de deshacerse de las advertencias en msvc es a través de #pragma warning (push), seguido de #pragma warning (disable: xxxx) donde XXXX es el código de advertencia:
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable:xxxx)
#endif
...
#ifdef _MSC_VER
#pragma warning(pop)
#endif
EDIT: Es perfectamente seguro para desactivar la advertencia. especificaciones de excepción son malos, y el compilador que sólo te está diciendo que les incapacita para usted. Incluso si se rompe la norma.
Otros consejos
Se puede tratar de jugar con preprocesador:
#ifdef _SOME_MSVC_DEFINE
# define _throw(foo)
#else
# define _throw(foo) throw(foo)
#endif
void myfunc1() _throw (CCustomException);
O, intente desactivar la advertencia de que en Visual Studio.
I encontraron esta enlace , que encontré útil. Recién añadido si podría ser útil a alguien ..