This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[patch] libstdc++/70767 Define std::numeric_limits<cv T> in C++98 mode
- From: Jonathan Wakely <jwakely at redhat dot com>
- To: libstdc++ at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org
- Date: Wed, 27 Apr 2016 12:58:04 +0100
- Subject: [patch] libstdc++/70767 Define std::numeric_limits<cv T> in C++98 mode
- Authentication-results: sourceware.org; auth=none
This makes the resolution to DR 559 apply for all dialects.
Tested x86_64-linux, committed to trunk.
commit 078fcaeb799445a24b8fe5872c5553a061e9b697
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Wed Apr 27 12:05:37 2016 +0100
libstdc++/70767 Define std::numeric_limits<cv T> in C++98 mode
PR libstdc++/70767
* include/std/limits: Update comments about DRs.
(numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
numeric_limits<const volatile _Tp>): Define unconditionally.
diff --git a/libstdc++-v3/include/std/limits b/libstdc++-v3/include/std/limits
index b25f825..53a183f 100644
--- a/libstdc++-v3/include/std/limits
+++ b/libstdc++-v3/include/std/limits
@@ -307,9 +307,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* representation of a fundamental type on a given platform. For
* non-fundamental types, the functions will return 0 and the data
* members will all be @c false.
- *
- * _GLIBCXX_RESOLVE_LIB_DEFECTS: DRs 201 and 184 (hi Gaby!) are
- * noted, but not incorporated in this documented (yet).
*/
template<typename _Tp>
struct numeric_limits : public __numeric_limits_base
@@ -360,7 +357,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
denorm_min() _GLIBCXX_USE_NOEXCEPT { return _Tp(); }
};
-#if __cplusplus >= 201103L
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // 559. numeric_limits<const T>
+
template<typename _Tp>
struct numeric_limits<const _Tp>
: public numeric_limits<_Tp> { };
@@ -372,10 +371,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
template<typename _Tp>
struct numeric_limits<const volatile _Tp>
: public numeric_limits<_Tp> { };
-#endif
// Now there follow 16 explicit specializations. Yes, 16. Make sure
- // you get the count right. (18 in c++0x mode)
+ // you get the count right. (18 in C++11 mode, with char16_t and char32_t.)
+
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // 184. numeric_limits<bool> wording problems
/// numeric_limits<bool> specialization.
template<>