@@ -1057,60 +1057,60 @@ void Lambda(int x, const String& s) {
10571057
10581058namespace std {
10591059 template <class T >
1060- struct remove_const { typedef T type; };
1060+ struct remove_const { typedef T type; };
10611061
1062- template <class T >
1063- struct remove_const <const T> { typedef T type; };
1062+ template <class T >
1063+ struct remove_const <const T> { typedef T type; };
10641064
1065- // `remove_const_t<T>` removes any `const` specifier from `T`
1066- template <class T >
1067- using remove_const_t = typename remove_const<T>::type;
1065+ // `remove_const_t<T>` removes any `const` specifier from `T`
1066+ template <class T >
1067+ using remove_const_t = typename remove_const<T>::type;
10681068
10691069 struct ptrdiff_t ;
10701070
1071- template <class I > struct iterator_traits ;
1072-
1073- template <class Category ,
1074- class value_type ,
1075- class difference_type = ptrdiff_t ,
1076- class pointer_type = value_type*,
1077- class reference_type = value_type&>
1078- struct iterator {
1079- typedef Category iterator_category;
1080-
1081- iterator ();
1082- iterator (iterator<Category, remove_const_t <value_type> > const &other); // non-const -> const conversion constructor
1083-
1084- iterator &operator ++();
1085- iterator operator ++(int );
1086- iterator &operator --();
1087- iterator operator --(int );
1088- bool operator ==(iterator other) const ;
1089- bool operator !=(iterator other) const ;
1090- reference_type operator *() const ;
1091- pointer_type operator ->() const ;
1092- iterator operator +(int );
1093- iterator operator -(int );
1094- iterator &operator +=(int );
1095- iterator &operator -=(int );
1096- int operator -(iterator);
1097- reference_type operator [](int );
1098- };
1099-
1100- struct input_iterator_tag {};
1101- struct forward_iterator_tag : public input_iterator_tag {};
1102- struct bidirectional_iterator_tag : public forward_iterator_tag {};
1103- struct random_access_iterator_tag : public bidirectional_iterator_tag {};
1104-
1105- struct output_iterator_tag {};
1071+ template <class I > struct iterator_traits ;
1072+
1073+ template <class Category ,
1074+ class value_type ,
1075+ class difference_type = ptrdiff_t ,
1076+ class pointer_type = value_type*,
1077+ class reference_type = value_type&>
1078+ struct iterator {
1079+ typedef Category iterator_category;
1080+
1081+ iterator ();
1082+ iterator (iterator<Category, remove_const_t <value_type> > const &other); // non-const -> const conversion constructor
1083+
1084+ iterator &operator ++();
1085+ iterator operator ++(int );
1086+ iterator &operator --();
1087+ iterator operator --(int );
1088+ bool operator ==(iterator other) const ;
1089+ bool operator !=(iterator other) const ;
1090+ reference_type operator *() const ;
1091+ pointer_type operator ->() const ;
1092+ iterator operator +(int );
1093+ iterator operator -(int );
1094+ iterator &operator +=(int );
1095+ iterator &operator -=(int );
1096+ int operator -(iterator);
1097+ reference_type operator [](int );
1098+ };
1099+
1100+ struct input_iterator_tag {};
1101+ struct forward_iterator_tag : public input_iterator_tag {};
1102+ struct bidirectional_iterator_tag : public forward_iterator_tag {};
1103+ struct random_access_iterator_tag : public bidirectional_iterator_tag {};
1104+
1105+ struct output_iterator_tag {};
11061106
11071107 template <typename T>
11081108 struct vector {
11091109 vector (T);
11101110 ~vector ();
11111111
11121112 using iterator = std::iterator<random_access_iterator_tag, T>;
1113- using const_iterator = std::iterator<random_access_iterator_tag, const T>;
1113+ using const_iterator = std::iterator<random_access_iterator_tag, const T>;
11141114
11151115 iterator begin () const ;
11161116 iterator end () const ;
0 commit comments