Sehr einfacher Code und der Fehler C2712 konnten nicht verstehen, warum

Ich habe eine Weile Probleme miterror C2712: Cannot use __try in functions that require object unwindingNachdem ich das Problem eingegrenzt hatte, blieb mir ein sehr einfacher Code übrig, und ich kann nicht verstehen, warum er diesen Fehler verursacht. Ich benutze Visual Studio unter Windows.

Ich kompiliere mit / EHa (ich verwende nicht / EHsc)

Den Grund benutze ich__try/__except und nichttry/catch Das liegt daran, dass ich ALLE Fehler abfangen möchte und nicht möchte, dass das Programm unter allen Umständen abstürzt, einschließlich beispielsweise der Division durch 0, die try-catch nicht abfängt.

#include <string>
static struct myStruct
{
    static std::string foo() {return "abc";}
};

int main ()
{
    myStruct::foo();

    __try 
    { }
    __except (true)
    { }

    return 0;
}

Ausgabe:

error C2712: Cannot use __try in functions that require object unwinding

Antworten auf die Frage(1)

Ihre Antwort auf die Frage