Recientemente obtuve una DLL que ha sido implementada por otros. Tengo que usarlo en mi aplicación. En el archivo de cabecera de su clase tienen la declaración de la funciónCómo deshacerse de la "especificación de excepción C++ ignorada" advertencia
void func1() throw (CCustomException);
Ahora cuando compilo que estoy recibiendo la advertencia,
especificación de excepciónC++ ignorado excepto para indicar una función no es _declspec (nothrow)
He leído el MSDN - Documentation pero no pude entenderlo claramente. Además, no quiero desactivar la advertencia solo porque se muestra. Quiero saber lo que estoy haciendo mal en lugar de deshabilitarlo.
pensé que mi función, dicen myfunc()
acceder a ese func1()
de la DLL no tiene esa lista especificación de excepción. Por lo tanto, traté de tener la correspondiente lista de especificaciones de excepción en mi función también, como
void myfunc1() throw (CCustomException);
Pero sigo recibiendo la advertencia. ¿De qué se trata esa advertencia y cómo deshacerse de ella? Estoy usando Qt 4.5 en Windows XP.
Parece que está compilando como C++ 0x, en el que las especificaciones de excepción como esta están en desuso, en lugar de C++ 03. Puede haber una opción de compilación para especificar que desea '03, o simplemente para volver a habilitar las especificaciones de excepción si desea otras 'características 0x'. –
@Alexandre C, Ya estoy de acuerdo con deshabilitar y todo, pero ¿de qué se trata la advertencia? ¿Por qué está ocurriendo y cuál es la razón detrás de esto? Solo quería saber esto ... – liaK
@liaK: vea el enlace publicado por Alexandre. – Philipp