Como habilito um aviso para expressões lambda não utilizadas no gcc?

Aug 18 2020

O código a seguir contém um erro de digitação, onde esqueci de invocar a expressão lambda com ():

#include <iostream>

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

Felizmente, o clang emite um -Wunused-valueaviso para a expressão lambda, pois ela nunca é avaliada/usada.

No entanto, o gcc não emite nenhum aviso. Existe uma maneira de avisar sobre esse código com bugs ao compilar com o gcc?

Há uma postagem relacionada sobre capturas lambda não utilizadas aqui que é semelhante, mas esta questão é para as próprias expressões lambda não utilizadas .

Respostas

2 eerorika Aug 18 2020 at 00:12

O GCC tem a opção de aviso -Wunusedque habilita todos os avisos sobre trechos de código não utilizados. O GCC mais recente (tronco) não avisa sobre o lambda não utilizado com opções -Wunused -Wall -Wextra. Portanto, minha conclusão é que não há como ativar um aviso que avise sobre o programa mostrado no GCC neste momento.