Bagaimana cara mengaktifkan peringatan untuk ekspresi lambda yang tidak digunakan di gcc?

Aug 18 2020

Kode berikut memiliki kesalahan ketik, di mana saya lupa memanggil ekspresi lambda dengan ():

#include <iostream>

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

Untungnya clang mengeluarkan -Wunused-valueperingatan untuk ekspresi lambda, karena tidak pernah dievaluasi / digunakan.

Namun gcc tidak mengeluarkan peringatan sama sekali. Adakah cara untuk memperingatkan tentang kode buggy ini saat mengompilasi dengan gcc?

Ada posting terkait tentang tangkapan lambda yang tidak digunakan di sini yang serupa, tetapi pertanyaan ini untuk ekspresi lambda yang tidak digunakan itu sendiri.

Jawaban

2 eerorika Aug 18 2020 at 00:12

GCC memiliki opsi peringatan -Wunusedyang memungkinkan semua peringatan tentang potongan kode yang tidak digunakan. GCC (trunk) terbaru tidak memperingatkan tentang lambda yang tidak digunakan dengan opsi -Wunused -Wall -Wextra. Oleh karena itu kesimpulan saya adalah tidak ada cara untuk mengaktifkan peringatan yang memperingatkan tentang program yang ditampilkan di GCC saat ini.