Come posso abilitare un avviso per le espressioni lambda inutilizzate in gcc?

Aug 18 2020

Il seguente codice ha un errore di battitura, dove ho dimenticato di invocare l'espressione lambda con ():

#include <iostream>

int main() 
{
    []{ std::cout << "hello"; };
}

Fortunatamente clang emette un -Wunused-valueavviso per l'espressione lambda, poiché non viene mai valutata/utilizzata.

Tuttavia gcc non emette alcun avviso. C'è un modo per avvertire di questo codice difettoso durante la compilazione con gcc?

C'è un post correlato sulle acquisizioni lambda inutilizzate qui che è simile, ma questa domanda è per le stesse espressioni lambda inutilizzate .

Risposte

2 eerorika Aug 18 2020 at 00:12

GCC ha un'opzione di avviso -Wunusedche abilita tutti gli avvisi su pezzi di codice inutilizzati. L'ultimo (trunk) GCC non avvisa del lambda inutilizzato con options -Wunused -Wall -Wextra. Pertanto la mia conclusione è che non c'è modo di abilitare un avviso che avverte del programma mostrato in GCC in questo momento.