Also, es entsetzt mich...
Ich habe bei Weitem den Link noch nicht durch, aber echt sehr interessant!
Es ist also
unmöglich alle evtl. ProgrammPfade abzudecken, okay.
Ich meine, so einen simplen Code sollte doch für den Compiler durchschaubar sein:
Projekt besteht nur aus:
Code: Alles auswählen
// HalteProblem_2.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//
//#include "stdafx.h"
#include <iostream>
bool test()
{
try
{
return true;
}
catch(...)
{
}
}
int main(int argc, char* argv[])
{
test();
return 0;
}
Bei gcc meckert er also wenn man das entsprechende Flag angibt.
Was hat sich da MS gedacht...
Was ich auch noch lustig fand, auf Arbeit habe ich in meinem "Monster"-Projekt (jaa, Monster ^^) mal folgendes probiert:
Code: Alles auswählen
...
//Qt-Header und eigene eingebunden
int test()
{
}
int main(int argc, char* argv[])
{
cout << test() << endl;
// Meine Qt- Application ... weiß das jetzt leider nicht mehr!
....
}
Kein Fehler/Warnung bei Warnstufe 4!!
Aber okay, das kann ich mir noch so erklären, dass das Projekt so groß ist das der Compiler da eben irgendwo "aufgibt"..
Trotzdem: sehr wunderlich, für mich!
[Edit]
Leute, ich gebs auf...
Code: Alles auswählen
// HalteProblem_2.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//
//#include "stdafx.h"
#include <iostream>
int main(int argc, char* argv[])
{
int test(0);
try
{
test=10;
//return 0;
}
catch(...)
{
}
//return test;
}
Ausgabe:
------ Erstellen gestartet: Projekt: HalteProblem_2, Konfiguration: Debug Win32 ------
Kompilieren...
HalteProblem_2.cpp
d:\programmierung\projekte\halteproblem_2\halteproblem_2\halteproblem_2.cpp(17) : warning C4100: 'argv': Unreferenzierter formaler Parameter
d:\programmierung\projekte\halteproblem_2\halteproblem_2\halteproblem_2.cpp(17) : warning C4100: 'argc': Unreferenzierter formaler Parameter
Das Buildprotokoll wurde unter "file://d:\Programmierung\Projekte\HalteProblem_2\HalteProblem_2\Debug\BuildLog.htm" gespeichert.
HalteProblem_2 - 0 Fehler, 2 Warnung(en)
========== Erstellen: 1 erfolgreich, Fehler bei 0, 0 aktuell, 0 übersprungen ==========