aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Kosnik <bkoz@redhat.com>2001-06-26 23:12:45 +0000
committerBenjamin Kosnik <bkoz@gcc.gnu.org>2001-06-26 23:12:45 +0000
commit75bef4340507e9c9defcfdb6c3cfd916a4a64786 (patch)
tree4ca678fe72ffbc2c8e248801fa419b687b5fd2d7
parent767094ddfda30cbecd8944f64395640b217446b5 (diff)
downloadgcc-75bef4340507e9c9defcfdb6c3cfd916a4a64786.zip
gcc-75bef4340507e9c9defcfdb6c3cfd916a4a64786.tar.gz
gcc-75bef4340507e9c9defcfdb6c3cfd916a4a64786.tar.bz2
stream_iterator.h (istream_iterator): Add copy ctor.
2001-06-26 Benjamin Kosnik <bkoz@redhat.com> * include/bits/stream_iterator.h (istream_iterator): Add copy ctor. (ostream_iterator): Same. * include/bits/stl_iterator.h (front_insert_iterator::operator=): Change argument to const_reference. (back_insert_iterator): Same. From-SVN: r43596
-rw-r--r--libstdc++-v3/ChangeLog8
-rw-r--r--libstdc++-v3/include/bits/stl_iterator.h4
-rw-r--r--libstdc++-v3/include/bits/stream_iterator.h18
3 files changed, 24 insertions, 6 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index ead8ee3..18b3b5d 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,13 @@
2001-06-26 Benjamin Kosnik <bkoz@redhat.com>
+ * include/bits/stream_iterator.h (istream_iterator): Add copy ctor.
+ (ostream_iterator): Same.
+ * include/bits/stl_iterator.h (front_insert_iterator::operator=):
+ Change argument to const_reference.
+ (back_insert_iterator): Same.
+
+2001-06-26 Benjamin Kosnik <bkoz@redhat.com>
+
* include/bits/sbuf_iter.h: Change to..
* include/bits/streambuf_iterator.h: This.
* include/bits/stl_iterator.h: Take out of here...
diff --git a/libstdc++-v3/include/bits/stl_iterator.h b/libstdc++-v3/include/bits/stl_iterator.h
index eb13632..eb63892 100644
--- a/libstdc++-v3/include/bits/stl_iterator.h
+++ b/libstdc++-v3/include/bits/stl_iterator.h
@@ -196,7 +196,7 @@ namespace std
back_insert_iterator(_Container& __x) : container(&__x) {}
back_insert_iterator&
- operator=(const typename _Container::value_type& __value)
+ operator=(const typename _Container::const_reference __value)
{
container->push_back(__value);
return *this;
@@ -230,7 +230,7 @@ namespace std
explicit front_insert_iterator(_Container& __x) : container(&__x) {}
front_insert_iterator&
- operator=(const typename _Container::value_type& __value)
+ operator=(const typename _Container::const_reference __value)
{
container->push_front(__value);
return *this;
diff --git a/libstdc++-v3/include/bits/stream_iterator.h b/libstdc++-v3/include/bits/stream_iterator.h
index 0ee8e38..c6bde4e 100644
--- a/libstdc++-v3/include/bits/stream_iterator.h
+++ b/libstdc++-v3/include/bits/stream_iterator.h
@@ -51,8 +51,14 @@ namespace std
public:
istream_iterator() : _M_stream(0), _M_ok(false) {}
+
istream_iterator(istream_type& __s) : _M_stream(&__s) { _M_read(); }
+ istream_iterator(const istream_iterator& __obj)
+ : _M_stream(__obj._M_stream), _M_value(__obj._M_value),
+ _M_ok(__obj._M_ok)
+ { }
+
const _Tp&
operator*() const { return _M_value; }
@@ -96,9 +102,9 @@ namespace std
template <class _Tp, class _CharT, class _Traits, class _Dist>
inline bool
- operator!=(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x,
- const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y)
- { return !__x._M_equal(__y); }
+ operator!=(const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __x,
+ const istream_iterator<_Tp, _CharT, _Traits, _Dist>& __y)
+ { return !__x._M_equal(__y); }
template<typename _Tp, typename _CharT = char,
@@ -117,8 +123,12 @@ namespace std
public:
ostream_iterator(ostream_type& __s) : _M_stream(&__s), _M_string(0) {}
+
ostream_iterator(ostream_type& __s, const _CharT* __c)
- : _M_stream(&__s), _M_string(__c) { }
+ : _M_stream(&__s), _M_string(__c) { }
+
+ ostream_iterator(const ostream_iterator& __obj)
+ : _M_stream(__obj._M_stream), _M_string(__obj._M_string) { }
ostream_iterator&
operator=(const _Tp& __value)