template struct is_nothrow_move_constructible { static constexpr bool value = false; }; template struct _Tuple_impl { _Tuple_impl () noexcept(is_nothrow_move_constructible<_Head>::value) { } }; template void TPL (_Tuple_impl &) noexcept { _Tuple_impl m; } inline void foo (_Tuple_impl &p) { TPL (p); }