Created on 2006-02-19.00:00:00 last changed 182 months ago
[ Portland: Martin will clarify that user-defined types get cv-specializations automatically. ]
Proposed resolution:
Add  to  the   synopsis  of  the  <limits>  header,
immediately  below  the  declaration  of  the  primary  template,  the
following:
template <class T> class numeric_limits<const T>; template <class T> class numeric_limits<volatile T>; template <class T> class numeric_limits<const volatile T>;
Add a new paragraph to the end of [numeric.limits], with the following text:
-new-para- The  value of each member  of a numeric_limits
specialization on a  cv-qualified T is equal to the  value of the same
member of numeric_limits<T>.
        
[limits], p2 requires implementations  to provide specializations of the
numeric_limits template for  each scalar type. While this
could be interepreted to include cv-qualified forms of such types such
an  interepretation   is  not  reflected   in  the  synopsis   of  the
<limits> header.
        
The absence  of specializations of the template  on cv-qualified forms
of  fundamental types  makes numeric_limits  difficult to
use in generic  code where the constness (or volatility)  of a type is
not  always  immediately  apparent.  In  such  contexts,  the  primary
template  ends   up  being   instantiated  instead  of   the  provided
specialization, typically yielding unexpected behavior.
        
Require   that  specializations   of   numeric_limits  on
cv-qualified fundamental types have the same semantics as those on the
unqualifed forms of the same types.
        
| History | |||
|---|---|---|---|
| Date | User | Action | Args | 
| 2010-10-21 18:28:33 | admin | set | messages: + msg3059 | 
| 2010-10-21 18:28:33 | admin | set | messages: + msg3058 | 
| 2006-02-19 00:00:00 | admin | create | |