取自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