«static-cast» 태그된 질문



1
`decltype (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;항상을 반환하지 …
24 c++  static-cast 

1
gcc의 is_nothrow_constructible 구현에 static_cast가 필요한 이유는 무엇입니까?
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.