Como habilito um aviso para expressões lambda não utilizadas no gcc?
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-value
aviso 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
O GCC tem a opção de aviso -Wunused
que 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.