En C++, vous pouvez avoir des arguments par défaut:
int sum(int first, int second=0){ // should not give warning
return first+first;
}
Vous pouvez également argument supplémentaire:
int sum(int first, int second){ // should give warning
first *= 2;
return first;
}
Si vous avez un paramètre que vous ne l'utilisez et ce n'est pas par défaut, vous devriez recevoir un avertissement parce que vous demandez au programme de transmettre à la pile des valeurs supplémentaires qui ne sont jamais référencées, et qui font donc plus de travail que nécessaire.
Cela signifie peut-être que vous avez également oublié une partie de la logique de la fonction.
Par ailleurs, l'approche avec la macro UNUSED est utilisée dans la bibliothèque Qt: elle a un Q_UNUSED, qui fait exactement la même chose, mais sans wrapper "do..while". –
En effet, il ressemble à un idiome commun. Je l'ai vu dans quelques endroits. –
Pourriez-vous ajouter un exemple de la façon d'effectuer un cast sur void? (Je l'ai essayé et cela fonctionne, mais il semble si bizarre que je n'aurais jamais pensé qu'il compilerait - et je suis sûr que d'autres ressentent la même chose.) –