Comment activer un avertissement pour les expressions lambda inutilisées dans gcc ?

Aug 18 2020

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-valueavertissement 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

2 eerorika Aug 18 2020 at 00:12

GCC a une option d'avertissement -Wunusedqui 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.