complex (complex): Define copy constructor and assignment operator as defaulted.

* include/std/complex (complex): Define copy constructor and
	assignment operator as defaulted. Improve Doxygen comments.

From-SVN: r214736
This commit is contained in:
Jonathan Wakely 2014-08-29 17:28:19 +01:00 committed by Jonathan Wakely
parent 81b5d104e9
commit fa794dc63e
2 changed files with 27 additions and 17 deletions

View File

@ -1,3 +1,8 @@
2014-08-29 Jonathan Wakely <jwakely@redhat.com>
* include/std/complex (complex): Define copy constructor and
assignment operator as defaulted. Improve Doxygen comments.
2014-08-28 Jonathan Wakely <jwakely@redhat.com>
* testsuite/ext/random/*: Fix incorrect standard references in

View File

@ -129,9 +129,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_CONSTEXPR complex(const _Tp& __r = _Tp(), const _Tp& __i = _Tp())
: _M_real(__r), _M_imag(__i) { }
// Lets the compiler synthesize the copy constructor
// complex (const complex<_Tp>&);
/// Copy constructor.
// Let the compiler synthesize the copy constructor
#if __cplusplus >= 201103L
constexpr complex(const complex&) = default;
#endif
/// Converting constructor.
template<typename _Up>
_GLIBCXX_CONSTEXPR complex(const complex<_Up>& __z)
: _M_real(__z.real()), _M_imag(__z.imag()) { }
@ -172,10 +175,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
void
imag(_Tp __val) { _M_imag = __val; }
/// Assign this complex number to scalar @a t.
/// Assign a scalar to this complex number.
complex<_Tp>& operator=(const _Tp&);
/// Add @a t to this complex number.
/// Add a scalar to this complex number.
// 26.2.5/1
complex<_Tp>&
operator+=(const _Tp& __t)
@ -184,7 +187,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
return *this;
}
/// Subtract @a t from this complex number.
/// Subtract a scalar from this complex number.
// 26.2.5/3
complex<_Tp>&
operator-=(const _Tp& __t)
@ -193,27 +196,29 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
return *this;
}
/// Multiply this complex number by @a t.
/// Multiply this complex number by a scalar.
complex<_Tp>& operator*=(const _Tp&);
/// Divide this complex number by @a t.
/// Divide this complex number by a scalar.
complex<_Tp>& operator/=(const _Tp&);
// Lets the compiler synthesize the
// copy and assignment operator
// complex<_Tp>& operator= (const complex<_Tp>&);
/// Assign this complex number to complex @a z.
// Let the compiler synthesize the copy assignment operator
#if __cplusplus >= 201103L
complex& operator=(const complex&) = default;
#endif
/// Assign another complex number to this one.
template<typename _Up>
complex<_Tp>& operator=(const complex<_Up>&);
/// Add @a z to this complex number.
/// Add another complex number to this one.
template<typename _Up>
complex<_Tp>& operator+=(const complex<_Up>&);
/// Subtract @a z from this complex number.
/// Subtract another complex number from this one.
template<typename _Up>
complex<_Tp>& operator-=(const complex<_Up>&);
/// Multiply this complex number by @a z.
/// Multiply this complex number by another.
template<typename _Up>
complex<_Tp>& operator*=(const complex<_Up>&);
/// Divide this complex number by @a z.
/// Divide this complex number by another.
template<typename _Up>
complex<_Tp>& operator/=(const complex<_Up>&);
@ -625,7 +630,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// 26.2.7/5: norm(__z) returns the squared magnitude of __z.
// As defined, norm() is -not- a norm is the common mathematical
// sens used in numerics. The helper class _Norm_helper<> tries to
// sense used in numerics. The helper class _Norm_helper<> tries to
// distinguish between builtin floating point and the rest, so as
// to deliver an answer as close as possible to the real value.
template<bool>