32#ifndef _RWSTD_RW_STREAMITER_H_INCLUDED
33#define _RWSTD_RW_STREAMITER_H_INCLUDED
35#ifndef _RWSTD_RW_ITERBASE_H_INCLUDED
45template <
class _TypeT,
class _CharT,
class _Traits,
class _Distance>
46class istream_iterator;
48template <
class _TypeT,
class _CharT,
class _Traits,
class _Distance>
49bool operator== (
const istream_iterator<_TypeT, _CharT, _Traits, _Distance>&,
50 const istream_iterator<_TypeT, _CharT, _Traits, _Distance>&);
53#if !defined (_MSC_VER) || _MSC_VER > 1300
55template <
class _TypeT,
class _CharT = char,
56 class _Traits = char_traits<_CharT>,
57 class _Distance = _RWSTD_PTRDIFF_T>
61template <
class _TypeT,
class _CharT,
class _Traits,
class _Distance>
66 :
public iterator<input_iterator_tag, _TypeT, _Distance,
67 const _TypeT*, const _TypeT&>
70 (
const istream_iterator&,
const istream_iterator&);
72 typedef iterator<input_iterator_tag, _TypeT, _Distance,
73 const _TypeT*,
const _TypeT&> _C_base;
77 typedef _CharT char_type;
78 typedef _Traits traits_type;
79 typedef basic_istream<char_type, traits_type> istream_type;
82 typedef typename _C_base::value_type value_type;
85 istream_iterator (): _C_strm (0) { }
88 istream_iterator (istream_type& __s)
102 istream_iterator& operator++ ();
105 istream_iterator operator++ (
int) {
106 istream_iterator __tmp = *
this;
107 return ++*
this, __tmp;
112 istream_type *_C_strm;
117template <
class _TypeT,
class _CharT,
class _Traits,
class _Distance>
118inline istream_iterator<_TypeT, _CharT, _Traits, _Distance>&
119istream_iterator<_TypeT, _CharT, _Traits, _Distance>::
125 if (_C_strm && (*_C_strm >> _C_val).
fail ())
133template <
class _TypeT,
class _CharT,
class _Traits,
class _Distance>
135operator== (
const istream_iterator<_TypeT, _CharT, _Traits, _Distance>& __x,
136 const istream_iterator<_TypeT, _CharT, _Traits, _Distance>& __y)
138 return __x._C_strm == __y._C_strm;
142template <
class _TypeT,
class _CharT,
class _Traits,
class _Distance>
144operator!= (
const istream_iterator<_TypeT, _CharT, _Traits, _Distance>& __x,
145 const istream_iterator<_TypeT, _CharT, _Traits, _Distance>& __y)
147 return !(__x == __y);
152template <
class _TypeT,
class _CharT = char,
153 class _Traits = char_traits<_CharT> >
154struct ostream_iterator: iterator<output_iterator_tag, void, void, void, void>
156 typedef _CharT char_type;
157 typedef _Traits traits_type;
158 typedef basic_ostream<char_type, traits_type> ostream_type;
161 ostream_iterator (ostream_type& __strm,
const char_type* __s = 0)
162 : _C_strm (&__strm), _C_str (__s) { }
165 ostream_iterator& operator= (
const _TypeT &__val) {
178 ostream_iterator& operator++ () {
182 ostream_iterator& operator++ (
int) {
188 ostream_type *_C_strm;
189 const char_type *_C_str;
const plus_asgn< T > & operator*(const plus_asgn< T > &lhs, const plus_asgn< T > &rhs)
#define _RWSTD_SPECIALIZED_FRIEND(name)
#define _RWSTD_NAMESPACE(name)
#define _RWSTD_OPERATOR_ARROW(signature)
bool operator==(const json_pointer< RefStringTypeLhs > &lhs, const json_pointer< RefStringTypeRhs > &rhs) noexcept
bool operator!=(const json_pointer< RefStringTypeLhs > &lhs, const json_pointer< RefStringTypeRhs > &rhs) noexcept