aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libstdc++-v3/ChangeLog10
-rw-r--r--libstdc++-v3/include/std/complex12
-rw-r--r--libstdc++-v3/include/std/type_traits2
3 files changed, 17 insertions, 7 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index fdf739f..ff95635 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,15 @@
2013-04-22 Paolo Carlini <paolo.carlini@oracle.com>
+ N3669
+ * include/std/complex (complex<float>::real, complex<float>::imag,
+ complex<double>::real, complex<double>::imag,
+ complex<long double>::real, complex<long double>::imag): Declare
+ as const member functions.
+ * include/std/type_traits (integral_constant<>::operator value_type):
+ Likewise.
+
+2013-04-22 Paolo Carlini <paolo.carlini@oracle.com>
+
PR libstdc++/57010
* include/bits/stl_heap.h (pop_heap): Avoid self move-assignment.
* testsuite/25_algorithms/pop_heap/57010.cc: New.
diff --git a/libstdc++-v3/include/std/complex b/libstdc++-v3/include/std/complex
index e426673..b31e8b1 100644
--- a/libstdc++-v3/include/std/complex
+++ b/libstdc++-v3/include/std/complex
@@ -1066,11 +1066,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// DR 387. std::complex over-encapsulated.
__attribute ((__abi_tag__ ("cxx11")))
constexpr float
- real() { return __real__ _M_value; }
+ real() const { return __real__ _M_value; }
__attribute ((__abi_tag__ ("cxx11")))
constexpr float
- imag() { return __imag__ _M_value; }
+ imag() const { return __imag__ _M_value; }
#else
float&
real() { return __real__ _M_value; }
@@ -1217,11 +1217,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// DR 387. std::complex over-encapsulated.
__attribute ((__abi_tag__ ("cxx11")))
constexpr double
- real() { return __real__ _M_value; }
+ real() const { return __real__ _M_value; }
__attribute ((__abi_tag__ ("cxx11")))
constexpr double
- imag() { return __imag__ _M_value; }
+ imag() const { return __imag__ _M_value; }
#else
double&
real() { return __real__ _M_value; }
@@ -1369,11 +1369,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// DR 387. std::complex over-encapsulated.
__attribute ((__abi_tag__ ("cxx11")))
constexpr long double
- real() { return __real__ _M_value; }
+ real() const { return __real__ _M_value; }
__attribute ((__abi_tag__ ("cxx11")))
constexpr long double
- imag() { return __imag__ _M_value; }
+ imag() const { return __imag__ _M_value; }
#else
long double&
real() { return __real__ _M_value; }
diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits
index 488ffd9..5bff0ab 100644
--- a/libstdc++-v3/include/std/type_traits
+++ b/libstdc++-v3/include/std/type_traits
@@ -59,7 +59,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static constexpr _Tp value = __v;
typedef _Tp value_type;
typedef integral_constant<_Tp, __v> type;
- constexpr operator value_type() { return value; }
+ constexpr operator value_type() const { return value; }
};
template<typename _Tp, _Tp __v>