ฉันชอบแอตทริบิวต์ [[maybe_unused]]
และใช้บ่อยเมื่อต้องคอมไพล์การใช้งานฟังก์ชันเฉพาะการแก้ไขข้อบกพร่อง ฉันสับสนเล็กน้อยว่าควรใช้ตรงไหนเมื่อระบุอาร์กิวเมนต์ฟังก์ชันสมาชิกเป็น [[maybe_unused]]
ที่ให้ไว้:
//Foo.h
class Foo {
void DebugOnly(Bar& fly);
}
//Foo.cpp
void Foo::DebugOnly(Bar& fly) {
#ifdef _DEBUG
fly.squish();
#endif
}
การระบุไว้ในทั้งสองแห่งสร้างความแตกต่างหรือไม่?
//Foo.h
class Foo {
void DebugOnly([[maybe_unused]] Bar& fly);
}
//Foo.cpp
void Foo::DebugOnly([[maybe_unused]] Bar& fly) {
#ifdef _DEBUG
fly.squish();
#endif
}
หรือฉันควรประกาศเฉพาะในส่วนหัวหรือไฟล์การใช้งาน?
ส่วนหัวเท่านั้น
//Foo.h
class Foo {
void DebugOnly([[maybe_unused]] Bar& fly);
}
//Foo.cpp
void Foo::DebugOnly(Bar& fly) {
#ifdef _DEBUG
fly.squish();
#endif
}
ไฟล์การใช้งานเท่านั้น
//Foo.h
class Foo {
void DebugOnly(Bar& fly);
}
//Foo.cpp
void Foo::DebugOnly([[maybe_unused]] Bar& fly) {
#ifdef _DEBUG
fly.squish();
#endif
}
หน้าบน cppreference ไม่ได้สร้างความแตกต่างสำหรับอาร์กิวเมนต์ของฟังก์ชันและมีเพียง จัดประเภทเป็นตัวแปร