@@ -152,12 +152,18 @@ class push_coroutine
152
152
return * this ;
153
153
}
154
154
155
- class iterator : public std ::iterator< std::output_iterator_tag, void , void , void , void >
155
+ class iterator
156
156
{
157
157
private:
158
158
push_coroutine< Arg > * c_;
159
159
160
160
public:
161
+ typedef std::output_iterator_tag iterator_category;
162
+ typedef void value_type;
163
+ typedef void difference_type;
164
+ typedef void pointer;
165
+ typedef void reference;
166
+
161
167
iterator () :
162
168
c_ ( 0 )
163
169
{}
@@ -291,12 +297,18 @@ class push_coroutine< Arg & >
291
297
return * this ;
292
298
}
293
299
294
- class iterator : public std ::iterator< std::output_iterator_tag, void , void , void , void >
300
+ class iterator
295
301
{
296
302
private:
297
303
push_coroutine< Arg & > * c_;
298
304
299
305
public:
306
+ typedef std::output_iterator_tag iterator_category;
307
+ typedef void value_type;
308
+ typedef void difference_type;
309
+ typedef void pointer;
310
+ typedef void reference;
311
+
300
312
iterator () :
301
313
c_ ( 0 )
302
314
{}
@@ -725,7 +737,7 @@ class pull_coroutine
725
737
return impl_->get ();
726
738
}
727
739
728
- class iterator : public std ::iterator< std::input_iterator_tag, typename remove_reference< R >::type >
740
+ class iterator
729
741
{
730
742
private:
731
743
pull_coroutine< R > * c_;
@@ -754,8 +766,14 @@ class pull_coroutine
754
766
}
755
767
756
768
public:
757
- typedef typename iterator::pointer pointer_t ;
758
- typedef typename iterator::reference reference_t ;
769
+ typedef std::input_iterator_tag iterator_category;
770
+ typedef typename remove_reference< R >::type value_type;
771
+ typedef std::ptrdiff_t difference_type;
772
+ typedef value_type * pointer;
773
+ typedef value_type & reference;
774
+
775
+ typedef pointer pointer_t ;
776
+ typedef reference reference_t ;
759
777
760
778
iterator () :
761
779
c_ ( 0 ), val_( 0 )
@@ -808,7 +826,7 @@ class pull_coroutine
808
826
}
809
827
};
810
828
811
- class const_iterator : public std ::iterator< std::input_iterator_tag, const typename remove_reference< R >::type >
829
+ class const_iterator
812
830
{
813
831
private:
814
832
pull_coroutine< R > * c_;
@@ -837,8 +855,14 @@ class pull_coroutine
837
855
}
838
856
839
857
public:
840
- typedef typename const_iterator::pointer pointer_t ;
841
- typedef typename const_iterator::reference reference_t ;
858
+ typedef std::input_iterator_tag iterator_category;
859
+ typedef const typename remove_reference< R >::type value_type;
860
+ typedef std::ptrdiff_t difference_type;
861
+ typedef value_type * pointer;
862
+ typedef value_type & reference;
863
+
864
+ typedef pointer pointer_t ;
865
+ typedef reference reference_t ;
842
866
843
867
const_iterator () :
844
868
c_ ( 0 ), val_( 0 )
@@ -1181,7 +1205,7 @@ class pull_coroutine< R & >
1181
1205
R & get () const
1182
1206
{ return impl_->get (); }
1183
1207
1184
- class iterator : public std ::iterator< std::input_iterator_tag, typename remove_reference< R >::type >
1208
+ class iterator
1185
1209
{
1186
1210
private:
1187
1211
pull_coroutine< R & > * c_;
@@ -1210,8 +1234,14 @@ class pull_coroutine< R & >
1210
1234
}
1211
1235
1212
1236
public:
1213
- typedef typename iterator::pointer pointer_t ;
1214
- typedef typename iterator::reference reference_t ;
1237
+ typedef std::input_iterator_tag iterator_category;
1238
+ typedef typename remove_reference< R >::type value_type;
1239
+ typedef std::ptrdiff_t difference_type;
1240
+ typedef value_type * pointer;
1241
+ typedef value_type & reference;
1242
+
1243
+ typedef pointer pointer_t ;
1244
+ typedef reference reference_t ;
1215
1245
1216
1246
iterator () :
1217
1247
c_ ( 0 ), val_( 0 )
@@ -1264,7 +1294,7 @@ class pull_coroutine< R & >
1264
1294
}
1265
1295
};
1266
1296
1267
- class const_iterator : public std ::iterator< std::input_iterator_tag, const typename remove_reference< R >::type >
1297
+ class const_iterator
1268
1298
{
1269
1299
private:
1270
1300
pull_coroutine< R & > * c_;
@@ -1293,8 +1323,14 @@ class pull_coroutine< R & >
1293
1323
}
1294
1324
1295
1325
public:
1296
- typedef typename const_iterator::pointer pointer_t ;
1297
- typedef typename const_iterator::reference reference_t ;
1326
+ typedef std::input_iterator_tag iterator_category;
1327
+ typedef const typename remove_reference< R >::type value_type;
1328
+ typedef std::ptrdiff_t difference_type;
1329
+ typedef value_type * pointer;
1330
+ typedef value_type & reference;
1331
+
1332
+ typedef pointer pointer_t ;
1333
+ typedef reference reference_t ;
1298
1334
1299
1335
const_iterator () :
1300
1336
c_ ( 0 ), val_( 0 )
0 commit comments