Как включить предупреждение о неиспользуемых лямбда-выражениях в gcc?

Aug 18 2020

В следующем коде есть опечатка, в которой я забыл вызвать лямбда-выражение с помощью ():

#include <iostream>

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

К счастью, clang выдает -Wunused-valueпредупреждение для лямбда-выражения, поскольку оно никогда не оценивается / не используется.

Однако gcc вообще не выдает никаких предупреждений. Есть ли способ предупредить об этом коде с ошибками при компиляции с помощью gcc?

Существует родственный сообщение о неиспользуемых лямбда захватами здесь что аналогично, но этот вопрос по неиспользованным лямбда - выражения сами.

Ответы

2 eerorika Aug 18 2020 at 00:12

В GCC есть опция предупреждения, -Wunusedкоторая включает все предупреждения о неиспользуемых частях кода. Последний (основной) GCC не предупреждает о неиспользованной лямбде с опциями -Wunused -Wall -Wextra. Поэтому я пришел к выводу, что в данный момент нет возможности включить предупреждение о показанной программе в GCC.