2017-09-07 4 views
0

Existe-t-il un moyen de traiter l'erreur de non-concordance d'exception comme un avertissement dans clang?Option de compilateur Clang pour traiter l'erreur laxiste de la spécification d'exception comme avertissement

source_file.cpp:12:18: error: exception specification of overriding function is more lax than base version virtual void Func(){}

Je reçois une erreur avec google mock pour les fonctions qui spécifient un spécificateur d'exception. En regardant https://github.com/google/googletest/pull/681 et d'autres problèmes signalés, je ne sais pas si cela va être corrigé dans google maquette, donc au moins pour le code de test si possible, je voudrais désactiver cela.

//clang 3.8.0 
#include <iostream> 

struct A 
{ 
    virtual void Func() throw() {} 
}; 
struct B : public A 
{ 
    virtual void Func(){} 
}; 

int main() 
{ 
    B b; 
    return 0; 
} 

Répondre

1

Oui, en utilisant l'option de ligne de commande -fms-extensions.
MSVC avertit uniquement à ce sujet, donc avec le mode de compatibilité clang MSVC, le code compilera, et l'erreur sera remplacée par un avertissement équivalent.

En savoir plus sur le mode de compatibilité MSVC dans la documentation clangée, here.

+0

Merci qui a fonctionné !! – user3279954