Skip to content

CWG2723 [basic.fundamental] Ranges of representable values are underspecified for floating-point types #300

@frederick-vs-ja

Description

@frederick-vs-ja

Full name of submitter (unless configured in github; will be published with the issue): Jiang An

Reference (section label): [basic.fundamental]

Link to reflector thread (if any):

Issue description:
Currently the range of representable values of a given floating-point type is underspecified in [basic.fundamental], but the range is already referred in [lex.fcon] p3 and the library wording (e.g. in [charconv.from.chars] p1 and [facet.num.get.virtuals] p3).

The range is well-specified in C, perhaps C++ should adopt the C wording.

Suggested resolution:

Insert a new paragraph immediately after [basic.fundamental] p12 (originally WG14 N3096 5.2.4.2.2 p13):

X. The minimum range of representable values for a floating-point type is the most negative finite floating-point number representable in that type through the most positive finite floating-point number representable in that type. In addition, if negative infinity is representable in a type, the range of that type is extended to all negative real numbers; likewise, if positive infinity is representable in a type, the range of that type is extended to all positive real numbers.

Insert a note for ISO 60559 types immediately after the new paragraph (originally WG14 N3096 F.2.1 p1):

[Note X: Since negative and positive infinity are representable in ISO/IEC/IEEE 60559 formats, all real numbers lie within the range of representable values of a floating-point type adhering to ISO/IEC/IEEE 60559. — end note]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions