schrieb ich die absolute Funktion ternären Operator alsreturn-Anweisung in ternäre Operator C++
int abs(int a) {
a >=0 ? return a : return -a;
}
folgt erhalte ich folgende Fehlermeldungen
../src/templates.cpp: In function ‘int abs(int)’:
../src/templates.cpp:4: error: expected primary-expression before ‘return’
../src/templates.cpp:4: error: expected ‘:’ before ‘return’
../src/templates.cpp:4: error: expected primary-expression before ‘return’
../src/templates.cpp:4: error: expected ‘;’ before ‘return’
../src/templates.cpp:4: error: expected primary-expression before ‘:’ token
../src/templates.cpp:4: error: expected ‘;’ before ‘:’ token
../src/templates.cpp:5: warning: no return statement in function returning non-void
Wenn ich schreibe, wie diese
return a>=0 ? a : -a;
Ich bekomme keinen Fehler. Was ist der Unterschied zwischen den beiden?
Das erste Argument des ternären Operator ist auch ein Ausdruck, natürlich. Die letzten beiden können jedoch Ausdrücke des Typs "void" sein. –
Ja, es ist nur so, dass das OP-Problem mit den letzten zwei war ... –