Comment activer un avertissement pour les expressions lambda inutilisées dans gcc ?
Le code suivant a une faute de frappe, où j'ai oublié d'invoquer l'expression lambda avec ()
:
#include <iostream>
int main()
{
[]{ std::cout << "hello"; };
}
Heureusement, clang émet un -Wunused-value
avertissement pour l'expression lambda, car elle n'est jamais évaluée/utilisée.
Cependant, gcc n'émet aucun avertissement. Existe-t-il un moyen d'avertir de ce code bogué lors de la compilation avec gcc ?
Il y a un article connexe sur les captures lambda inutilisées ici qui est similaire, mais cette question concerne les expressions lambda inutilisées elles-mêmes.
Réponses
GCC a une option d'avertissement -Wunused
qui active tous les avertissements sur les morceaux de code inutilisés. Le dernier GCC (tronc) n'avertit pas du lambda inutilisé avec options -Wunused -Wall -Wextra
. Par conséquent, ma conclusion est qu'il n'y a aucun moyen d'activer un avertissement qui avertit du programme affiché dans GCC en ce moment.