Come posso abilitare un avviso per le espressioni lambda inutilizzate in gcc?
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-value
avviso 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
GCC ha un'opzione di avviso -Wunused
che 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.