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);
    }
    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 () { 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);
    eval("sub __value () { (sizeof(__detail::__test_type<_Tp>(0))!=sizeof(__detail::__one)); }") unless defined(&__value);
    eval("sub __value () { sizeof(__first<_Tp>)==sizeof(__second<_Tp>); }") 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);
    }
}
1;
