This makes the resolution to DR 559 apply for all dialects.
Tested x86_64-linux, committed to trunk.
commit 078fcaeb799445a24b8fe5872c5553a061e9b697 Author: Jonathan Wakely <jwak...@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<>