Section: 17.3 [support.limits] Status: CD1 Submitter: Stephen Cleary Opened: 1999-12-21 Last modified: 2017-06-15
Priority: Not Prioritized
View all issues with CD1 status.
Discussion:
In some places in this section, the terms "fundamental types" and "scalar types" are used when the term "arithmetic types" is intended. The current usage is incorrect because void is a fundamental type and pointers are scalar types, neither of which should have specializations of numeric_limits.
[Lillehammer: it remains true that numeric_limits is using imprecise language. However, none of the proposals for changed wording are clearer. A redesign of numeric_limits is needed, but this is more a task than an open issue.]
Proposed resolution:
Change 17.3 [support.limits] to:
-1- The headers
<limits>
,<climits>
,<cfloat>
, and<cinttypes>
supply characteristics of implementation-dependentfundamentalarithmetic types (3.9.1).
Change [limits] to:
-1- The
numeric_limits
component provides a C++ program with information about various properties of the implementation's representation of thefundamentalarithmetic types.-2- Specializations shall be provided for each
fundamentalarithmetic type, both floating point and integer, includingbool
. The memberis_specialized
shall betrue
for all such specializations ofnumeric_limits
.-4- Non-
fundamentalarithmetic standard types, such ascomplex<T>
(26.3.2), shall not have specializations.
Change 17.3.5 [numeric.limits] to:
-1- The memberis_specialized
makes it possible to distinguish between fundamental types, which have specializations, and non-scalar types, which do not.