คำถามติดแท็ก static-assert

8
static_assert ทำอะไรและคุณจะใช้เพื่ออะไร
คุณช่วยยกตัวอย่างได้ไหมว่าstatic_assert(...)('C ++ 11') จะแก้ปัญหาได้อย่างสวยงาม? assert(...)ผมคุ้นเคยกับเวลาทำงาน เมื่อไหร่ที่ฉันควรชอบstatic_assert(...)มากกว่าปกติassert(...)? นอกจากนี้ในboostนั้นมีสิ่งที่เรียกว่าBOOST_STATIC_ASSERTมันเหมือนกับstatic_assert(...)?

12
คงยืนยันใน C
วิธีใดที่ดีที่สุดในการบรรลุการยืนยันแบบคงที่ของเวลาคอมไพล์ใน C (ไม่ใช่ C ++) โดยเน้นเฉพาะ GCC

2
ถ้า constexpr ที่มี static_assert ในแลมบ์ดาคอมไพเลอร์ตัวไหนถูกต้อง?
เมื่อเราต้องการที่จะใช้static_assertในif constexprเราจะต้องทำให้เงื่อนไขขึ้นอยู่กับพารามิเตอร์แม่แบบบางอย่าง น่าสนใจ gcc และเสียงดังกราวไม่เห็นด้วยเมื่อโค้ดถูกห่อในแลมบ์ดา โค้ดต่อไปนี้คอมไพล์ด้วย gcc แต่เสียงดังกราวกระตุ้นการยืนยันแม้ว่าif constexprจะไม่เป็นจริงก็ตาม #include <utility> template<typename T> constexpr std::false_type False; template<typename T> void foo() { auto f = [](auto x) { constexpr int val = decltype(x)::value; if constexpr(val < 0) { static_assert(False<T>, "AAA"); } }; f(std::integral_constant<int, 1>{}); } int main() { foo<int>(); } ตัวอย่างที่อาศัยอยู่ที่นี่ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.