@@ -1057,60 +1057,60 @@ void Lambda(int x, const String& s) {
1057
1057
1058
1058
namespace std {
1059
1059
template <class T >
1060
- struct remove_const { typedef T type; };
1060
+ struct remove_const { typedef T type; };
1061
1061
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; };
1064
1064
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;
1068
1068
1069
1069
struct ptrdiff_t ;
1070
1070
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 {};
1106
1106
1107
1107
template <typename T>
1108
1108
struct vector {
1109
1109
vector (T);
1110
1110
~vector ();
1111
1111
1112
1112
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>;
1114
1114
1115
1115
iterator begin () const ;
1116
1116
iterator end () const ;
0 commit comments