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

7
static_cast <> และการหล่อสไตล์ C แตกต่างกันอย่างไร
มีเหตุผลใดที่จะชอบstatic_cast&lt;&gt;การคัดเลือกนักแสดงสไตล์ C มากกว่าหรือไม่? พวกเขาเท่ากันหรือไม่ การเรียงลำดับความเร็วแตกต่างกันหรือไม่?
202 c++  casting  static-cast 

4
ฉันควรใช้ static_cast หรือ reinterpret_cast เมื่อทำการโมฆะ * ไปยังสิ่งใด
ทั้ง static_cast และ reinterpret_cast ดูเหมือนจะทำงานได้ดีในการคัดเลือกโมฆะ * ไปยังตัวชี้ประเภทอื่น มีเหตุผลที่ดีที่จะสนับสนุนอีกฝ่ายหรือไม่?

1
ทำไม `เดคไทป์ (static_cast <T> (…))` ไม่เสมอ 'T'
สำหรับรหัสต่อไปนี้ทั้งหมด แต่การยืนยันครั้งสุดท้ายผ่านไป: template&lt;typename T&gt; constexpr void assert_static_cast_identity() { using T_cast = decltype(static_cast&lt;T&gt;(std::declval&lt;T&gt;())); static_assert(std::is_same_v&lt;T_cast, T&gt;); } int main() { assert_static_cast_identity&lt;int&gt;(); assert_static_cast_identity&lt;int&amp;&gt;(); assert_static_cast_identity&lt;int&amp;&amp;&gt;(); // assert_static_cast_identity&lt;int(int)&gt;(); // illegal cast assert_static_cast_identity&lt;int (&amp;)(int)&gt;(); assert_static_cast_identity&lt;int (&amp;&amp;)(int)&gt;(); // static assert fails } นี่คือเหตุผลที่ยืนยันที่ผ่านมาล้มเหลวและstatic_cast&lt;T&gt;ไม่เคยกลับT?
24 c++  static-cast 

1
เหตุใดจึงต้องมี static_cast ในการใช้งาน gcc ของ is_nothrow_constructible
นำมาจากการใช้ GCC type_traitsว่าทำไมจึงstatic_castต้องมีที่นี่ template &lt;typename _Tp, typename... _Args&gt; struct __is_nt_constructible_impl : public integral_constant&lt;bool, noexcept(_Tp(declval&lt;_Args&gt;()...))&gt; {}; template &lt;typename _Tp, typename _Arg&gt; struct __is_nt_constructible_impl&lt;_Tp, _Arg&gt; : public integral_constant&lt;bool, // Why is `static_cast` needed here? noexcept(static_cast&lt;_Tp&gt;(declval&lt;_Arg&gt;()))&gt; {};
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.