float_t and related typesAuthors: Jay Ghiron
Date: 2026-03-31
Submitted against: C23
Status: Open
What does it mean when float_t or double_t are complex types?
Specifically:
The types
float_t double_tare floating types ... If they are not real floating types, the behavior is implementation-defined.
(C23 7.12.1 "Mathematics" paragraph 3.)
The behavior of what is implementation-defined? Any program that uses
the types float_t or double_t? Any program that performs
floating-point arithmetic? Any program at all, simply because the
types are defined this way?
Can float_t and double_t be defined as decimal floating types?
They are real floating types, but such definitions would prevent
adding float and float_t or double and double_t. To satisfy
the requirements on the ranges of values, at least one of the decimal
floating types would need to represent a set of values which are a
superset of the values representable by float for such definitions
to be possible.
Can long_double_t and _FloatN_t be defined as complex types?