Bagaimana cara mengaktifkan peringatan untuk ekspresi lambda yang tidak digunakan di gcc?
Kode berikut memiliki kesalahan ketik, di mana saya lupa memanggil ekspresi lambda dengan ()
:
#include <iostream>
int main()
{
[]{ std::cout << "hello"; };
}
Untungnya clang mengeluarkan -Wunused-value
peringatan 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
GCC memiliki opsi peringatan -Wunused
yang 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.