// { dg-do compile }
// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING3. If not see
// .
#include
namespace std {
// 24.3, primitives:
template struct iterator_traits;
template struct iterator_traits;
template struct iterator;
struct input_iterator_tag;
struct output_iterator_tag;
struct forward_iterator_tag;
struct bidirectional_iterator_tag;
struct random_access_iterator_tag;
// 24.3.4, iterator operations:
template
void
advance(InputIterator& i, Distance n);
template
typename iterator_traits::difference_type
distance(InputIterator first, InputIterator last);
// 24.4, predefined iterators:
template class reverse_iterator;
template
bool operator==(const reverse_iterator& x,
const reverse_iterator& y);
template
bool operator<(const reverse_iterator& x,
const reverse_iterator& y);
template
bool operator!=(const reverse_iterator& x,
const reverse_iterator& y);
template
bool operator>(const reverse_iterator& x,
const reverse_iterator& y);
template
bool operator>=(const reverse_iterator& x,
const reverse_iterator& y);
template
bool operator<=(const reverse_iterator& x,
const reverse_iterator& y);
template
typename reverse_iterator::difference_type
operator-(const reverse_iterator& x,
const reverse_iterator& y);
template
reverse_iterator
operator+(typename reverse_iterator::difference_type n,
const reverse_iterator& x);
template class back_insert_iterator;
template
back_insert_iterator back_inserter(Container& x);
template class front_insert_iterator;
template
front_insert_iterator front_inserter(Container& x);
template class insert_iterator;
template
insert_iterator inserter(Container& x, Iterator i);
// 24.5, stream iterators:
template
class istream_iterator;
template
bool operator==(const istream_iterator& x,
const istream_iterator& y);
template
bool operator!=(const istream_iterator& x,
const istream_iterator& y);
template
class ostream_iterator;
template
class istreambuf_iterator;
template
bool
operator==(const istreambuf_iterator&,
const istreambuf_iterator&);
template
bool operator!=(const istreambuf_iterator&,
const istreambuf_iterator&);
template
class ostreambuf_iterator;
}