j'ai écrit la fonction absolue utilisant l'opérateur ternaire comme suitde retour dans l'opérateur ternaire C++
int abs(int a) {
a >=0 ? return a : return -a;
}
-je obtenir les messages d'erreur suivants
../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 j'écris comme ça
return a>=0 ? a : -a;
Je ne reçois aucune erreur. Quelle est la différence entre les deux?
Le premier argument de l'opérateur ternaire est aussi une expression, bien sûr. Les deux derniers pourraient être des expressions de type 'void', cependant. –
Oui, c'est juste que le problème de l'OP était avec les deux derniers ... –