205. numeric_limits unclear on how to determine floating point types

Section: 21.3.4.1 [numeric.limits.members] Status: NAD Submitter: Steve Cleary Opened: 2000-01-28 Last modified: 2016-02-10

Priority: Not Prioritized

View all other issues in [numeric.limits.members].

View all issues with NAD status.

Discussion:

In several places in 21.3.4.1 [numeric.limits.members], a member is described as "Meaningful for all floating point types." However, no clear method of determining a floating point type is provided.

In 21.3.4.2 [numeric.special], paragraph 1 states ". . . (for example, epsilon() is only meaningful if is_integer is false). . ." which suggests that a type is a floating point type if is_specialized is true and is_integer is false; however, this is unclear.

When clarifying this, please keep in mind this need of users: what exactly is the definition of floating point? Would a fixed point or rational representation be considered one? I guess my statement here is that there could also be types that are neither integer or (strictly) floating point.

Rationale:

It is up to the implementor of a user define type to decide if it is a floating point type.