Ho un programma:eccezioni- comportamenti scorretti in VC++ 2015 CTP ultimo
#include<iostream>
using namespace std;
class Test
{
public:
void func()
{
cout << "Inside func" << endl;
throw;
}
};
int myfunc()
{
Test T;
T.func();
return 1;
}
int main()
{
myfunc();
cout << "Main func" << endl;//should not print
getchar();
}
La mia aspettativa era questo programma sarebbe sospendere dal main
, ma su VC++ 2015 il main
cout
si stava stampato. Che era contro la mia comprensione, quindi l'ho compilato con gcc
e funziona bene lì.
Si tratta di un bug in VC++ 2015 o il comportamento della terminazione del programma come questo è il comportamento non specificato/UB? Dovrebbe mai eseguire cout << "Main func" << endl;
?
IDE: VS2015 CTP ultima anteprima (per 30 giorni)
bandiere: /GS /analyze- /W3 /Zc:wchar_t /ZI /Gm /Od /sdl /Fd"Debug\vc140.pdb" /fp:precise /D "_MBCS" /errorReport:prompt /WX- /Zc:forScope /RTC1 /Gd /Oy- /MDd /Fa"Debug\" /EHsc /nologo /Fo"Debug\" /Fp"Debug\exception.pch"
Potrebbe fornire i flag del compilatore utilizzati per la compilazione, per favore? – namezero
Cosa succede se si utilizza la versione finale di VS2015? CTP è piuttosto vecchio, tra RTM e CTP c'era anche un RC. –
@namezero: dove lo trovo? Comunque non ho ancora cambiato le impostazioni di default. – InQusitive