diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2018-06-08 17:43:14 +0100 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2018-06-08 17:43:14 +0100 |
commit | a14175560cca5da1f9ff776c5c7309473397d43d (patch) | |
tree | b4f7b600f85d721994a50cf2134624619d3c6521 | |
parent | 29a50dfb47ff12c7730a3d604642ce500a39c78f (diff) | |
download | gcc-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/ChangeLog | 16 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/ios_base.h | 5 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_bvector.h | 4 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stream_iterator.h | 8 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/streambuf_iterator.h | 5 | ||||
-rw-r--r-- | libstdc++-v3/include/std/bitset | 4 | ||||
-rw-r--r-- | libstdc++-v3/include/std/complex | 12 |
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& |