require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_CPP_TYPE_TRAITS_H)) {
    eval 'sub _CPP_TYPE_TRAITS_H () {1;}' unless defined(&_CPP_TYPE_TRAITS_H);
    require 'bits/c++config.ph';
    eval("sub __value () { bool(_Sp::__value)||bool(_Tp::__value); }") unless defined(&__value);
    eval("sub __value () { 0; }") unless defined(&__value);
    eval("sub __value () { 1; }") unless defined(&__value);
    eval("sub __value () { 0; }") unless defined(&__value);
    eval("sub __value () { 1; }") unless defined(&__value);
    eval("sub __value () { 0; }") unless defined(&__value);
    eval("sub __value () { 1; }") unless defined(&__value);
    eval("sub __value () { 1; }") unless defined(&__value);
    eval("sub __value () { 1; }") unless defined(&__value);
    eval("sub __value () { 1; }") unless defined(&__value);
    if(defined(&_GLIBCXX_USE_WCHAR_T)) {
	eval("sub __value () { 1; }") unless defined(&__value);
    }
    if(defined(&_GLIBCXX_USE_CHAR8_T)) {
	eval("sub __value () { 1; }") unless defined(&__value);
    }
    if((defined(&__cplusplus) ? &__cplusplus : undef) >= 201103) {
	eval("sub __value () { 1; }") unless defined(&__value);
	eval("sub __value () { 1; }") unless defined(&__value);
    }
    eval("sub __value () { 1; }") unless defined(&__value);
    eval("sub __value () { 1; }") unless defined(&__value);
    eval("sub __value () { 1; }") unless defined(&__value);
    eval("sub __value () { 1; }") unless defined(&__value);
    eval("sub __value () { 1; }") unless defined(&__value);
    eval("sub __value () { 1; }") unless defined(&__value);
    eval("sub __value () { 1; }") unless defined(&__value);
    eval("sub __value () { 1; }") unless defined(&__value);
    eval 'sub __INT_N {
        my($TYPE) = @_;
	    eval q( &template<> \'struct __is_integer\'<$TYPE> {  &enum {  &__value = 1};  &typedef  &__true_type  &__type; };  &template<> \'struct __is_integer\'<\'unsigned TYPE\'> {  &enum {  &__value = 1};  &typedef  &__true_type  &__type; };);
    }' unless defined(&__INT_N);
    if(defined(&__GLIBCXX_TYPE_INT_N_0)) {
    }
    if(defined(&__GLIBCXX_TYPE_INT_N_1)) {
    }
    if(defined(&__GLIBCXX_TYPE_INT_N_2)) {
    }
    if(defined(&__GLIBCXX_TYPE_INT_N_3)) {
    }
    undef(&__INT_N) if defined(&__INT_N);
    eval("sub __value () { 0; }") unless defined(&__value);
    eval("sub __value () { 1; }") unless defined(&__value);
    eval("sub __value () { 1; }") unless defined(&__value);
    eval("sub __value () { 1; }") unless defined(&__value);
    eval("sub __value () { 0; }") unless defined(&__value);
    eval("sub __value () { 1; }") unless defined(&__value);
    eval("sub __value () { 0; }") unless defined(&__value);
    eval("sub __value () { 1; }") unless defined(&__value);
    if(defined(&_GLIBCXX_USE_WCHAR_T)) {
	eval("sub __value () { 1; }") unless defined(&__value);
    }
    eval("sub __value () { 0; }") unless defined(&__value);
    eval("sub __value () { 1; }") unless defined(&__value);
    eval("sub __value () { 1; }") unless defined(&__value);
    eval("sub __value () { 1; }") unless defined(&__value);
    if((defined(&__cplusplus) ? &__cplusplus : undef) >= 201703) {
	eval("sub __value () { 1; }") unless defined(&__value);
    }
    if(defined(&_GLIBCXX_USE_CHAR8_T)) {
	eval("sub __value () { 1; }") unless defined(&__value);
    }
    eval("sub __value () { __is_trivially_copyable(_Tp); }") unless defined(&__value);
    eval("sub __value () { 0; }") unless defined(&__value);
    eval("sub __value () { 0; }") unless defined(&__value);
    eval("sub __value () { 0; }") unless defined(&__value);
    if((defined(&__cplusplus) ? &__cplusplus : undef) >= 201703) {
    }
    eval("sub __value () { 0; }") unless defined(&__value);
}
1;
