2 // Origin: Andreas Kloeckner <ak@ixion.net>
4 template<class Iterator> struct iterator_traits {
5 typedef typename Iterator::iterator_category
6 iterator_category; // { dg-error "" } no type iterator_category
9 template<class Category>
11 typedef Category iterator_category;
15 template <class Iterator>
16 struct reverse_iterator : public // { dg-message "instantiated" } no type iterator_category
17 iterator<typename iterator_traits<Iterator>::iterator_category> {
27 struct list_iterator {
30 reverse_iterator<list_iterator<T> > rbegin()
31 { return reverse_iterator<list_iterator<T> >
32 (list_iterator<T>(Head->next())); } // { dg-error "" } not declared
35 template class list<int>;