J'ai une application multiplateforme et dans certaines de mes fonctions, toutes les valeurs transmises aux fonctions ne sont pas utilisées. Je reçois donc un avertissement de GCC me disant qu'il y a des variables inutilisées.
Quelle serait la meilleure façon de coder pour contourner cet avertissement ?
Un #ifdef autour de la fonction ?
#ifdef _MSC_VER
void ProcessOps::sendToExternalApp(QString sAppName, QString sImagePath, qreal qrLeft, qreal qrTop, qreal qrWidth, qreal qrHeight)
#else
void ProcessOps::sendToExternalApp(QString sAppName, QString sImagePath, qreal /*qrLeft*/, qreal /*qrTop*/, qreal /*qrWidth*/, qreal /*qrHeight*/)
#endif
{
C'est tellement laid mais cela semble être la façon que le compilateur préférerait.
Ou dois-je assigner zéro à la variable à la fin de la fonction ? (ce que je déteste car cela modifie quelque chose dans le déroulement du programme pour faire taire un avertissement du compilateur).
Existe-t-il une méthode correcte ?
7 votes
Je viens de réaliser que vous avez posé une question similaire en novembre dernier. C'est pourquoi elle me semble familière ! ;) stackoverflow.com/questions/308277/
9 votes
Pourquoi ne pas simplement les commenter pour les deux compilateurs ? Si l'argument est inutilisé sur l'un, il le sera probablement sur l'autre...
12 votes
Vous devez savoir que Qt dispose d'un
Q_UNUSED
macro juste pour ça. Consultez-la dans la documentation.1 votes
La solution C fonctionne bien en C++ également : stackoverflow.com/a/3599170/1904815
0 votes
-Wno-unused-parameter pourrait aussi être une option si vous pouvez avoir des drapeaux de construction spécifiques au compilateur.
0 votes
Directives de base F9 : isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rf-unused