177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner/* 277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * 377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * Copyright (c) 1994 477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * Hewlett-Packard Company 577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * 677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * Copyright (c) 1996-1998 777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * Silicon Graphics Computer Systems, Inc. 877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * 977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * Copyright (c) 1997 1077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * Moscow Center for SPARC Technology 1177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * 1277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * Copyright (c) 1999 1377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * Boris Fomitchev 1477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * 1577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * This material is provided "as is", with absolutely no warranty expressed 1677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * or implied. Any use is at your own risk. 1777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * 1877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * Permission to use or copy this software for any purpose is hereby granted 1977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * without fee, provided the above notices are retained on all copies. 2077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * Permission to modify the code and to distribute modified code is granted, 2177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * provided the above notices are retained, and a notice that the code was 2277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * modified is included with the above copyright notice. 2377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * 2477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner */ 2577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 2677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner/* NOTE: This is an internal header file, included by other STL headers. 2777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * You should not attempt to use it directly. 2877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner */ 2977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 3077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined (_STLP_INTERNAL_STREAM_ITERATOR_H) && !defined (_STLP_USE_NO_IOSTREAMS) 3177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#define _STLP_INTERNAL_STREAM_ITERATOR_H 3277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 3377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#ifndef _STLP_INTERNAL_ITERATOR_BASE_H 3477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# include <stl/_iterator_base.h> 3577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 3677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 3777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner// streambuf_iterators predeclarations must appear first 3877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#ifndef _STLP_INTERNAL_IOSFWD 3977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# include <stl/_iosfwd.h> 4077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 4177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 4277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#ifndef _STLP_INTERNAL_ALGOBASE_H 4377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# include <stl/_algobase.h> 4477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 4577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 4677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#ifndef _STLP_INTERNAL_OSTREAMBUF_ITERATOR_H 4777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# include <stl/_ostreambuf_iterator.h> 4877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 4977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 5077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#ifndef _STLP_INTERNAL_ISTREAMBUF_ITERATOR_H 5177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# include <stl/_istreambuf_iterator.h> 5277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 5377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 5477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#ifndef _STLP_INTERNAL_ISTREAM 5577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# include <stl/_istream.h> 5677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 5777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 5877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner// istream_iterator and ostream_iterator look very different if we're 5977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner// using new, templatized iostreams than if we're using the old cfront 6077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner// version. 6177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 6277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_BEGIN_NAMESPACE 6377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 6477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined (_STLP_LIMITED_DEFAULT_TEMPLATES) 6577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# define __ISI_TMPL_HEADER_ARGUMENTS class _Tp, class _CharT, class _Traits, class _Dist 6677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# define __ISI_TMPL_ARGUMENTS _Tp, _CharT, _Traits, _Dist 6777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate <class _Tp, 6877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner class _CharT = char, class _Traits = char_traits<_CharT>, 6977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner class _Dist = ptrdiff_t> 7077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerclass istream_iterator : public iterator<input_iterator_tag, _Tp , _Dist, 7177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const _Tp*, const _Tp& > { 7277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#else 7377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if defined (_STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS) && !defined (_STLP_DEFAULT_TYPE_PARAM) 7477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# define __ISI_TMPL_HEADER_ARGUMENTS class _Tp 7577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# define __ISI_TMPL_ARGUMENTS _Tp 7677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate <class _Tp> 7777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerclass istream_iterator : public iterator<input_iterator_tag, _Tp , ptrdiff_t, 7877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const _Tp*, const _Tp& > { 7977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# else 8077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# define __ISI_TMPL_HEADER_ARGUMENTS class _Tp, class _Dist 8177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# define __ISI_TMPL_ARGUMENTS _Tp, _Dist 8277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate <class _Tp, _STLP_DFL_TYPE_PARAM(_Dist, ptrdiff_t)> 8377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerclass istream_iterator : public iterator<input_iterator_tag, _Tp, _Dist , 8477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const _Tp*, const _Tp& > { 8577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif /* _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS */ 8677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif /* _STLP_LIMITED_DEFAULT_TEMPLATES */ 8777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 8877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined (_STLP_LIMITED_DEFAULT_TEMPLATES) 8977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef char _CharT; 9077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef char_traits<char> _Traits; 9177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if defined (_STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS) && !defined (_STLP_DEFAULT_TYPE_PARAM) 9277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef ptrdiff_t _Dist; 9377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 9477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 9577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 9677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef istream_iterator< __ISI_TMPL_ARGUMENTS > _Self; 9777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerpublic: 9877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef _CharT char_type; 9977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef _Traits traits_type; 10077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef basic_istream<_CharT, _Traits> istream_type; 10177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 10277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef input_iterator_tag iterator_category; 10377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef _Tp value_type; 10477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef _Dist difference_type; 10577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef const _Tp* pointer; 10677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef const _Tp& reference; 10777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 10877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner istream_iterator() : _M_stream(0), _M_ok(false), _M_read_done(true) {} 10977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner istream_iterator(istream_type& __s) : _M_stream(&__s), _M_ok(false), _M_read_done(false) {} 11077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 11177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner reference operator*() const { 11277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner if (!_M_read_done) { 11377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _M_read(); 11477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 11577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner return _M_value; 11677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 11777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 11877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _STLP_DEFINE_ARROW_OPERATOR 11977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 12077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _Self& operator++() { 12177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _M_read(); 12277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner return *this; 12377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 12477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _Self operator++(int) { 12577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _Self __tmp = *this; 12677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _M_read(); 12777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner return __tmp; 12877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 12977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 13077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner bool _M_equal(const _Self& __x) const { 13177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner if (!_M_read_done) { 13277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _M_read(); 13377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 13477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner if (!__x._M_read_done) { 13577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner __x._M_read(); 13677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 13777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner return (_M_ok == __x._M_ok) && (!_M_ok || _M_stream == __x._M_stream); 13877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 13977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 14077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerprivate: 14177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner istream_type* _M_stream; 14277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner mutable _Tp _M_value; 14377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner mutable bool _M_ok; 14477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner mutable bool _M_read_done; 14577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 14677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void _M_read() const { 14777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _STLP_MUTABLE(_Self, _M_ok) = ((_M_stream != 0) && !_M_stream->fail()); 14877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner if (_M_ok) { 14977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner *_M_stream >> _STLP_MUTABLE(_Self, _M_value); 15077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _STLP_MUTABLE(_Self, _M_ok) = !_M_stream->fail(); 15177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 15277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _STLP_MUTABLE(_Self, _M_read_done) = true; 15377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 15477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner}; 15577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 15677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined (_STLP_LIMITED_DEFAULT_TEMPLATES) 15777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate <class _TpP, 15877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner class _CharT = char, class _Traits = char_traits<_CharT> > 15977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#else 16077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate <class _TpP> 16177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 16277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerclass ostream_iterator: public iterator<output_iterator_tag, void, void, void, void> { 16377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined (_STLP_LIMITED_DEFAULT_TEMPLATES) 16477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef char _CharT; 16577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef char_traits<char> _Traits; 16677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef ostream_iterator<_TpP> _Self; 16777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#else 16877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef ostream_iterator<_TpP, _CharT, _Traits> _Self; 16977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 17077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerpublic: 17177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef _CharT char_type; 17277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef _Traits traits_type; 17377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef basic_ostream<_CharT, _Traits> ostream_type; 17477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 17577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef output_iterator_tag iterator_category; 17677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 17777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner ostream_iterator(ostream_type& __s) : _M_stream(&__s), _M_string(0) {} 17877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner ostream_iterator(ostream_type& __s, const _CharT* __c) 17977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner : _M_stream(&__s), _M_string(__c) {} 18077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _Self& operator=(const _TpP& __val) { 18177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner *_M_stream << __val; 18277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner if (_M_string) *_M_stream << _M_string; 18377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner return *this; 18477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 18577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _Self& operator*() { return *this; } 18677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _Self& operator++() { return *this; } 18777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _Self& operator++(int) { return *this; } 18877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerprivate: 18977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner ostream_type* _M_stream; 19077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const _CharT* _M_string; 19177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner}; 19277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 19377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES) 19477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if defined (_STLP_LIMITED_DEFAULT_TEMPLATES) 19577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate <class _TpP> 19677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerinline output_iterator_tag _STLP_CALL 19777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turneriterator_category(const ostream_iterator<_TpP>&) { return output_iterator_tag(); } 19877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# else 19977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate <class _TpP, class _CharT, class _Traits> 20077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerinline output_iterator_tag _STLP_CALL 20177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turneriterator_category(const ostream_iterator<_TpP, _CharT, _Traits>&) { return output_iterator_tag(); } 20277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 20377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 20477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 20577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_END_NAMESPACE 20677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 20777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner// form-independent definiotion of stream iterators 20877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_BEGIN_NAMESPACE 20977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 21077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate < __ISI_TMPL_HEADER_ARGUMENTS > 21177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerinline bool _STLP_CALL 21277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turneroperator==(const istream_iterator< __ISI_TMPL_ARGUMENTS >& __x, 21377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const istream_iterator< __ISI_TMPL_ARGUMENTS >& __y) 21477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner{ return __x._M_equal(__y); } 21577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 21677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined (_STLP_USE_SEPARATE_RELOPS_NAMESPACE) 21777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate < __ISI_TMPL_HEADER_ARGUMENTS > 21877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerinline bool _STLP_CALL 21977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turneroperator!=(const istream_iterator< __ISI_TMPL_ARGUMENTS >& __x, 22077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const istream_iterator< __ISI_TMPL_ARGUMENTS >& __y) 22177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner{ return !__x._M_equal(__y); } 22277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 22377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 22477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES) 22577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate < __ISI_TMPL_HEADER_ARGUMENTS > 22677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerinline input_iterator_tag _STLP_CALL 22777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turneriterator_category(const istream_iterator< __ISI_TMPL_ARGUMENTS >&) 22877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner{ return input_iterator_tag(); } 22977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate < __ISI_TMPL_HEADER_ARGUMENTS > 23077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerinline _Tp* _STLP_CALL 23177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnervalue_type(const istream_iterator< __ISI_TMPL_ARGUMENTS >&) { return (_Tp*) 0; } 23277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 23377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if defined (_STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS) && !defined (_STLP_DEFAULT_TYPE_PARAM) 23477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate < __ISI_TMPL_HEADER_ARGUMENTS > 23577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerinline ptrdiff_t* _STLP_CALL 23677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerdistance_type(const istream_iterator< __ISI_TMPL_ARGUMENTS >&) { return (ptrdiff_t*)0; } 23777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# else 23877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate < __ISI_TMPL_HEADER_ARGUMENTS > 23977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerinline _Dist* _STLP_CALL 24077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerdistance_type(const istream_iterator< __ISI_TMPL_ARGUMENTS >&) { return (_Dist*)0; } 24177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif /* _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS */ 24277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 24377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 24477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_END_NAMESPACE 24577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 24677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#undef __ISI_TMPL_HEADER_ARGUMENTS 24777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#undef __ISI_TMPL_ARGUMENTS 24877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 24977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif /* _STLP_INTERNAL_STREAM_ITERATOR_H */ 25077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 25177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner// Local Variables: 25277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner// mode:C++ 25377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner// End: 254