This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] libstdc++/70767 Define std::numeric_limits<cv T> in C++98 mode


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<>

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]