#include <type_traits>
using namespace std;
template<typename T, typename... Args>
struct is_nothrow_constructible_custom
: public integral_constant<bool, noexcept(T(declval<Args>()...))>
{};
class A
{
public:
A(int) {}
A(short) noexcept {}
};
int main()
{
static_assert(is_nothrow_constructible_custom<A, int>::value == false, "");
static_assert(is_nothrow_constructible_custom<A, short>::value == true, "");
}
I2luY2x1ZGUgPHR5cGVfdHJhaXRzPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4uIEFyZ3M+CnN0cnVjdCBpc19ub3Rocm93X2NvbnN0cnVjdGlibGVfY3VzdG9tCjogcHVibGljIGludGVncmFsX2NvbnN0YW50PGJvb2wsIG5vZXhjZXB0KFQoZGVjbHZhbDxBcmdzPigpLi4uKSk+Cnt9OwoKY2xhc3MgQQp7CnB1YmxpYzoKICAgIEEoaW50KSB7fQogICAgQShzaG9ydCkgbm9leGNlcHQge30KfTsKCmludCBtYWluKCkKewogICAgc3RhdGljX2Fzc2VydChpc19ub3Rocm93X2NvbnN0cnVjdGlibGVfY3VzdG9tPEEsIGludD46OnZhbHVlID09IGZhbHNlLCAiIik7CiAgICBzdGF0aWNfYXNzZXJ0KGlzX25vdGhyb3dfY29uc3RydWN0aWJsZV9jdXN0b208QSwgc2hvcnQ+Ojp2YWx1ZSA9PSB0cnVlLCAiIik7Cn0=