me escribió la función absoluta utilizando operador ternario de la siguiente manerainstrucción de retorno en el operador ternario C++
int abs(int a) {
a >=0 ? return a : return -a;
}
me sale el siguiente mensaje de error
../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
Si escribo como esto
return a>=0 ? a : -a;
No obtengo ningún error. ¿Cuál es la diferencia entre los dos?
El primer argumento del operador ternario es también una expresión, por supuesto. Sin embargo, los dos últimos podrían ser expresiones del tipo 'void'. –
Sí, es solo que el problema del OP fue con los dos últimos ... –