ist eine gültige Funktion in C++:Eine Funktion, die deklariert wird, um int zurückzugeben, gibt nichts zurück. Ist das undefiniertes Verhalten? Diese
int f()
{
if(false)
{
return 42;
}
}
Die folgende Definition verursacht UB:
int x = f(); //return value used
Die Frage: Hat der folgende Ausdruck Anweisung Ursache UB?
f();
Zitat aus dem Standard wäre sehr willkommen. Dank
Warnung: Bemerkungen zum stylistics irrelevant sind :)
Ich bin 99,9999% sicher, es ist ein UB. Und selbst wenn nicht, ist dies kein Programmierstil, den man empfehlen würde :) –
Der Versuch, Code in einem Kommentar auszuführen, ist nicht UB. –
ich mag, wie C# -Compiler es handhabt: in diesem Fall wird ein Kompilierungsfehler: "Nicht alle Codepfade geben einen Wert zurück" – Andrey