取自GCC实施type_traits为什么static_cast在这里需要?
template <typename _Tp, typename... _Args>
struct __is_nt_constructible_impl
    : public integral_constant<bool, noexcept(_Tp(declval<_Args>()...))> {};
template <typename _Tp, typename _Arg>
struct __is_nt_constructible_impl<_Tp, _Arg>
    : public integral_constant<bool,
                               // Why is `static_cast` needed here?
                               noexcept(static_cast<_Tp>(declval<_Arg>()))> {};
                  这种不一致看起来确实很奇怪
                
                
                  
                    —
                    在轨道上进行轻度竞赛
                    
                  
                
              
                  您应该在相关的libstdc ++邮件列表上询问类似这样的问题
                
                
                  
                    —
                    在轨道上进行的Lightness Races