ฉันจะเปิดใช้งานคำเตือนสำหรับนิพจน์แลมบ์ดาที่ไม่ได้ใช้ใน gcc ได้อย่างไร

Aug 18 2020

รหัสต่อไปนี้มีการพิมพ์ผิดโดยที่ฉันลืมเรียกใช้นิพจน์แลมบ์ดาด้วย():

#include <iostream>

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

โชคดีที่เสียงดังส่งเสียง-Wunused-valueเตือนสำหรับนิพจน์แลมบ์ดาเนื่องจากไม่เคยมีการประเมิน / ใช้

อย่างไรก็ตาม gcc ไม่ได้ออกคำเตือนใด ๆ เลย มีวิธีเตือนเกี่ยวกับโค้ดบั๊กกี้นี้เมื่อคอมไพล์ด้วย gcc หรือไม่?

มีการโพสต์ที่เกี่ยวข้องเกี่ยวกับแลมบ์ดาที่ไม่ได้ใช้จับ ที่นี่ซึ่งเป็นที่คล้ายกัน แต่คำถามนี้สำหรับแลมบ์ดาที่ไม่ได้ใช้การแสดงออกของตัวเอง

คำตอบ

2 eerorika Aug 18 2020 at 00:12

GCC มีตัวเลือกคำเตือน-Wunusedซึ่งเปิดใช้งานคำเตือนทั้งหมดเกี่ยวกับโค้ดที่ไม่ได้ใช้ ล่าสุด (ลำต้น) GCC -Wunused -Wall -Wextraไม่ได้เตือนเกี่ยวกับแลมบ์ดาที่ไม่ได้ใช้กับตัวเลือก ดังนั้นข้อสรุปของฉันคือไม่มีวิธีเปิดใช้งานคำเตือนที่เตือนเกี่ยวกับโปรแกรมที่แสดงใน GCC ในขณะนี้