código muito simples e obtendo o erro C2712, não conseguia entender por que

Estou tendo problemas por um tempo comerror C2712: Cannot use __try in functions that require object unwinding, depois de restringir o problema, fiquei com um código muito simples e não consigo entender por que ele causa esse erro. Estou usando o Visual Studio no Windows.

Estou compilando com / EHa (não uso / EHsc)

O motivo de eu usar__try/__except e nãotry/catch é porque eu quero capturar TODOS os erros e não quero que o programa falhe sob nenhuma circunstância, incluindo, por exemplo, a divisão por 0, que o try-catch não captura.

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

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

    __try 
    { }
    __except (true)
    { }

    return 0;
}

resultado:

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

questionAnswers(1)

yourAnswerToTheQuestion