¿Cómo habilito una advertencia para expresiones lambda no utilizadas en gcc?

Aug 18 2020

El siguiente código tiene un error tipográfico, donde olvidé invocar la expresión lambda con ():

#include <iostream>

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

Afortunadamente, clang emite una -Wunused-valueadvertencia para la expresión lambda, ya que nunca se evalúa/utiliza.

Sin embargo, gcc no emite ninguna advertencia. ¿Hay alguna manera de advertir sobre este código con errores al compilar con gcc?

Hay una publicación relacionada sobre capturas lambda no utilizadas aquí que es similar, pero esta pregunta es para expresiones lambda no utilizadas .

Respuestas

2 eerorika Aug 18 2020 at 00:12

GCC tiene una opción de advertencia -Wunusedque habilita todas las advertencias sobre piezas de código no utilizadas. El último GCC (troncal) no advierte sobre la lambda no utilizada con opciones -Wunused -Wall -Wextra. Por lo tanto, mi conclusión es que no hay forma de habilitar una advertencia que advierta sobre el programa mostrado en GCC en este momento.