require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_STL_ITERATOR_H)) {
    eval 'sub _STL_ITERATOR_H () {1;}' unless defined(&_STL_ITERATOR_H);
    require 'bits/cpp_type_traits.ph';
    require 'bits/stl_iterator_base_types.ph';
    require 'ext/type_traits.ph';
    require 'bits/move.ph';
    require 'bits/ptr_traits.ph';
    if((defined(&__cplusplus) ? &__cplusplus : undef) >= 201103) {
	require 'type_traits';
    }
    if((defined(&__cplusplus) ? &__cplusplus : undef) > 201703) {
	eval 'sub __cpp_lib_array_constexpr () {201811;}' unless defined(&__cpp_lib_array_constexpr);
	eval 'sub __cpp_lib_constexpr_iterator () {201811;}' unless defined(&__cpp_lib_constexpr_iterator);
    }
 elsif((defined(&__cplusplus) ? &__cplusplus : undef) == 201703) {
	eval 'sub __cpp_lib_array_constexpr () {201803;}' unless defined(&__cpp_lib_array_constexpr);
    }
    if((defined(&__cplusplus) ? &__cplusplus : undef) > 201703) {
	require 'compare';
	require 'new';
	require 'bits/iterator_concepts.ph';
    }
    if((defined(&__cpp_lib_concepts) ? &__cpp_lib_concepts : undef)) {
    }
    if(! (defined(&__cpp_lib_concepts) ? &__cpp_lib_concepts : undef)) {
    } else {
    }
    if((defined(&__cplusplus) ? &__cplusplus : undef) >= 201103) {
    }
    if((defined(&__cplusplus) ? &__cplusplus : undef) > 201703  && (defined(&__cpp_concepts) ? &__cpp_concepts : undef) >= 201907) {
    }
    if((defined(&__cplusplus) ? &__cplusplus : undef) > 201703  && (defined(&__cpp_lib_concepts) ? &__cpp_lib_concepts : undef)) {
    }
    if((defined(&__cplusplus) ? &__cplusplus : undef) <= 201703 || ! defined (&__cpp_lib_concepts)) {
    } else {
    }
    if((defined(&__cplusplus) ? &__cplusplus : undef) < 201103) {
    } else {
    }
    if((defined(&__cplusplus) ? &__cplusplus : undef) >= 201103) {
	if((defined(&__cplusplus) ? &__cplusplus : undef) >= 201402) {
	    eval 'sub __cpp_lib_make_reverse_iterator () {201402;}' unless defined(&__cpp_lib_make_reverse_iterator);
	    if((defined(&__cplusplus) ? &__cplusplus : undef) > 201703  && defined (&__cpp_lib_concepts)) {
	    }
	}
    }
    if((defined(&__cplusplus) ? &__cplusplus : undef) > 201703) {
    }
    if((defined(&__cplusplus) ? &__cplusplus : undef) < 201103) {
    } else {
    }
    if((defined(&__cplusplus) ? &__cplusplus : undef) > 201703) {
    }
    if((defined(&__cplusplus) ? &__cplusplus : undef) < 201103) {
    } else {
    }
    if((defined(&__cplusplus) ? &__cplusplus : undef) > 201703  && defined (&__cpp_lib_concepts)) {
    } else {
    }
    if((defined(&__cplusplus) ? &__cplusplus : undef) > 201703  && defined (&__cpp_lib_concepts)) {
    }
    if((defined(&__cplusplus) ? &__cplusplus : undef) < 201103) {
    } else {
    }
    if((defined(&__cplusplus) ? &__cplusplus : undef) > 201703  && defined (&__cpp_lib_concepts)) {
    } else {
    }
    if((defined(&__cplusplus) ? &__cplusplus : undef) > 201703  && (defined(&__cpp_lib_concepts) ? &__cpp_lib_concepts : undef)) {
    }
    if((defined(&__cpp_lib_three_way_comparison) ? &__cpp_lib_three_way_comparison : undef)) {
    } else {
    }
    if((defined(&__cplusplus) ? &__cplusplus : undef) >= 201103) {
    } else {
    }
    if((defined(&__cplusplus) ? &__cplusplus : undef) >= 201103) {
	if((defined(&__cplusplus) ? &__cplusplus : undef) > 201703  && (defined(&__cpp_lib_concepts) ? &__cpp_lib_concepts : undef)) {
	}
	if((defined(&__cplusplus) ? &__cplusplus : undef) > 201703  && (defined(&__cpp_lib_concepts) ? &__cpp_lib_concepts : undef)) {
	}
	if((defined(&__cplusplus) ? &__cplusplus : undef) > 201703  && (defined(&__cpp_lib_concepts) ? &__cpp_lib_concepts : undef)) {
	}
	if(! ((defined(&__cplusplus) ? &__cplusplus : undef) > 201703  && (defined(&__cpp_lib_concepts) ? &__cpp_lib_concepts : undef))) {
	}
	if((defined(&__cplusplus) ? &__cplusplus : undef) > 201703  && (defined(&__cpp_lib_concepts) ? &__cpp_lib_concepts : undef)) {
	} else {
	}
	if((defined(&__cplusplus) ? &__cplusplus : undef) <= 201703) {
	} else {
	}
	if((defined(&__cplusplus) ? &__cplusplus : undef) > 201703  && (defined(&__cpp_lib_concepts) ? &__cpp_lib_concepts : undef)) {
	} else {
	}
	if((defined(&__cpp_lib_concepts) ? &__cpp_lib_concepts : undef)) {
	}
	if((defined(&__cplusplus) ? &__cplusplus : undef) > 201703  && (defined(&__cpp_lib_concepts) ? &__cpp_lib_concepts : undef)) {
	} else {
	}
	if((defined(&__cplusplus) ? &__cplusplus : undef) > 201703  && (defined(&__cpp_lib_concepts) ? &__cpp_lib_concepts : undef)) {
	}
	if((defined(&__cplusplus) ? &__cplusplus : undef) > 201703  && (defined(&__cpp_lib_concepts) ? &__cpp_lib_concepts : undef)) {
	}
	if((defined(&__cpp_lib_three_way_comparison) ? &__cpp_lib_three_way_comparison : undef)) {
	} else {
	}
	if((defined(&__cplusplus) ? &__cplusplus : undef) > 201703  && (defined(&__cpp_lib_concepts) ? &__cpp_lib_concepts : undef)) {
	}
	if((defined(&__cplusplus) ? &__cplusplus : undef) > 201703  && (defined(&__cpp_lib_concepts) ? &__cpp_lib_concepts : undef)) {
	}
	if((defined(&__cplusplus) ? &__cplusplus : undef) > 201703  && (defined(&__cpp_lib_concepts) ? &__cpp_lib_concepts : undef)) {
	}
	if((defined(&__cplusplus) ? &__cplusplus : undef) > 201703  && (defined(&__cpp_lib_concepts) ? &__cpp_lib_concepts : undef)) {
	}
	if((defined(&__cpp_lib_three_way_comparison) ? &__cpp_lib_three_way_comparison : undef)) {
	} else {
	}
	if((defined(&__cplusplus) ? &__cplusplus : undef) > 201703  && (defined(&__cpp_lib_concepts) ? &__cpp_lib_concepts : undef)) {
	}
	eval("sub __value () { 1; }") unless defined(&__value);
	eval 'sub _GLIBCXX_MAKE_MOVE_ITERATOR {
	    my($_Iter) = @_;
    	    eval q( &std:: &make_move_iterator($_Iter));
	}' unless defined(&_GLIBCXX_MAKE_MOVE_ITERATOR);
	eval 'sub _GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR {
	    my($_Iter) = @_;
    	    eval q( &std:: &__make_move_if_noexcept_iterator($_Iter));
	}' unless defined(&_GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR);
    } else {
	eval 'sub _GLIBCXX_MAKE_MOVE_ITERATOR {
	    my($_Iter) = @_;
    	    eval q(($_Iter));
	}' unless defined(&_GLIBCXX_MAKE_MOVE_ITERATOR);
	eval 'sub _GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR {
	    my($_Iter) = @_;
    	    eval q(($_Iter));
	}' unless defined(&_GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR);
    }
    if((defined(&__cpp_deduction_guides) ? &__cpp_deduction_guides : undef) >= 201606) {
    }
    if(defined(&_GLIBCXX_DEBUG)) {
	require 'debug/stl_iterator.ph';
    }
}
1;
