aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2018-06-08 17:43:14 +0100
committerJonathan Wakely <redi@gcc.gnu.org>2018-06-08 17:43:14 +0100
commita14175560cca5da1f9ff776c5c7309473397d43d (patch)
treeb4f7b600f85d721994a50cf2134624619d3c6521
parent29a50dfb47ff12c7730a3d604642ce500a39c78f (diff)
downloadgcc-a14175560cca5da1f9ff776c5c7309473397d43d.zip
gcc-a14175560cca5da1f9ff776c5c7309473397d43d.tar.gz
gcc-a14175560cca5da1f9ff776c5c7309473397d43d.tar.bz2
Define special members as defaulted
* include/bits/ios_base.h (ios::Init::Init(const Init&)) (ios::Init::operator=): Define as defaulted. * include/bits/stl_bvector.h (_Bit_reference(const _Bit_reference&)): Likewise. * include/bits/stream_iterator.h (istream_iterator::operator=) (ostream_iterator::operator=): Likewise. * include/bits/streambuf_iterator.h (istreambuf_iterator::operator=) Likewise. * include/std/bitset (bitset::reference::reference(const reference&)): Likewise. * include/std/complex (complex<float>::complex(const complex&)) (complex<double>::complex(const complex&)) (complex<long double>::complex(const complex&)): Likewise. From-SVN: r261338
-rw-r--r--libstdc++-v3/ChangeLog16
-rw-r--r--libstdc++-v3/include/bits/ios_base.h5
-rw-r--r--libstdc++-v3/include/bits/stl_bvector.h4
-rw-r--r--libstdc++-v3/include/bits/stream_iterator.h8
-rw-r--r--libstdc++-v3/include/bits/streambuf_iterator.h5
-rw-r--r--libstdc++-v3/include/std/bitset4
-rw-r--r--libstdc++-v3/include/std/complex12
7 files changed, 51 insertions, 3 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 6d03df7..84bc4a7 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,19 @@
+2018-06-08 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/ios_base.h (ios::Init::Init(const Init&))
+ (ios::Init::operator=): Define as defaulted.
+ * include/bits/stl_bvector.h (_Bit_reference(const _Bit_reference&)):
+ Likewise.
+ * include/bits/stream_iterator.h (istream_iterator::operator=)
+ (ostream_iterator::operator=): Likewise.
+ * include/bits/streambuf_iterator.h (istreambuf_iterator::operator=)
+ Likewise.
+ * include/std/bitset (bitset::reference::reference(const reference&)):
+ Likewise.
+ * include/std/complex (complex<float>::complex(const complex&))
+ (complex<double>::complex(const complex&))
+ (complex<long double>::complex(const complex&)): Likewise.
+
2018-06-07 Jonathan Wakely <jwakely@redhat.com>
* include/bits/regex.h (sub_match): Add noexcept to default
diff --git a/libstdc++-v3/include/bits/ios_base.h b/libstdc++-v3/include/bits/ios_base.h
index c0c4e3b..819afb9 100644
--- a/libstdc++-v3/include/bits/ios_base.h
+++ b/libstdc++-v3/include/bits/ios_base.h
@@ -607,6 +607,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
Init();
~Init();
+#if __cplusplus >= 201103L
+ Init(const Init&) = default;
+ Init& operator=(const Init&) = default;
+#endif
+
private:
static _Atomic_word _S_refcount;
static bool _S_synced_with_stdio;
diff --git a/libstdc++-v3/include/bits/stl_bvector.h b/libstdc++-v3/include/bits/stl_bvector.h
index 2459404..4527ce7 100644
--- a/libstdc++-v3/include/bits/stl_bvector.h
+++ b/libstdc++-v3/include/bits/stl_bvector.h
@@ -79,6 +79,10 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
_Bit_reference() _GLIBCXX_NOEXCEPT : _M_p(0), _M_mask(0) { }
+#if __cplusplus >= 201103L
+ _Bit_reference(const _Bit_reference&) = default;
+#endif
+
operator bool() const _GLIBCXX_NOEXCEPT
{ return !!(*_M_p & _M_mask); }
diff --git a/libstdc++-v3/include/bits/stream_iterator.h b/libstdc++-v3/include/bits/stream_iterator.h
index 002310c..7b682d2 100644
--- a/libstdc++-v3/include/bits/stream_iterator.h
+++ b/libstdc++-v3/include/bits/stream_iterator.h
@@ -74,6 +74,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_M_ok(__obj._M_ok)
{ }
+#if __cplusplus >= 201103L
+ istream_iterator& operator=(const istream_iterator&) = default;
+#endif
+
const _Tp&
operator*() const
{
@@ -188,6 +192,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
ostream_iterator(const ostream_iterator& __obj)
: _M_stream(__obj._M_stream), _M_string(__obj._M_string) { }
+#if __cplusplus >= 201103L
+ ostream_iterator& operator=(const ostream_iterator&) = default;
+#endif
+
/// Writes @a value to underlying ostream using operator<<. If
/// constructed with delimiter string, writes delimiter to ostream.
ostream_iterator&
diff --git a/libstdc++-v3/include/bits/streambuf_iterator.h b/libstdc++-v3/include/bits/streambuf_iterator.h
index 292ef3a..8a3a382 100644
--- a/libstdc++-v3/include/bits/streambuf_iterator.h
+++ b/libstdc++-v3/include/bits/streambuf_iterator.h
@@ -121,6 +121,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
istreambuf_iterator(streambuf_type* __s) _GLIBCXX_USE_NOEXCEPT
: _M_sbuf(__s), _M_c(traits_type::eof()) { }
+#if __cplusplus >= 201103L
+ istreambuf_iterator&
+ operator=(const istreambuf_iterator&) noexcept = default;
+#endif
+
/// Return the current character pointed to by iterator. This returns
/// streambuf.sgetc(). It cannot be assigned. NB: The result of
/// operator*() on an end of stream is undefined.
diff --git a/libstdc++-v3/include/std/bitset b/libstdc++-v3/include/std/bitset
index e598ea3..25e44d1 100644
--- a/libstdc++-v3/include/std/bitset
+++ b/libstdc++-v3/include/std/bitset
@@ -816,6 +816,10 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
_M_bpos = _Base::_S_whichbit(__pos);
}
+#if __cplusplus >= 201103L
+ reference(const reference&) = default;
+#endif
+
~reference() _GLIBCXX_NOEXCEPT
{ }
diff --git a/libstdc++-v3/include/std/complex b/libstdc++-v3/include/std/complex
index 2e2c2c0..2d1cc18 100644
--- a/libstdc++-v3/include/std/complex
+++ b/libstdc++-v3/include/std/complex
@@ -1158,7 +1158,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// Let the compiler synthesize the copy and assignment
// operator. It always does a pretty good job.
- // complex& operator=(const complex&);
+#if __cplusplus >= 201103L
+ _GLIBCXX14_CONSTEXPR complex& operator=(const complex&) = default;
+#endif
template<typename _Tp>
complex&
@@ -1308,7 +1310,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
// The compiler will synthesize this, efficiently.
- // complex& operator=(const complex&);
+#if __cplusplus >= 201103L
+ _GLIBCXX14_CONSTEXPR complex& operator=(const complex&) = default;
+#endif
template<typename _Tp>
complex&
@@ -1460,7 +1464,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
// The compiler knows how to do this efficiently
- // complex& operator=(const complex&);
+#if __cplusplus >= 201103L
+ _GLIBCXX14_CONSTEXPR complex& operator=(const complex&) = default;
+#endif
template<typename _Tp>
complex&