This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 118b. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2025-09-28


3036. Extended floating-point types should not be cv-qualified

Section: 6.9.3  [basic.extended.fp]     Status: open     Submitter: Jan Schultke     Date: 2025-06-03

(From submission #710.)

It is underspecified whether std::float16_t and related extended floating-point types are cv-qualified or not. The intent is that those are cv-unqualified.

Possible resolution:

Change in 17.4.2 [stdfloat.syn] as follows:

  namespace std {
    #if defined(__STDCPP_FLOAT16_T__)
      using float16_t = implementation-defined decltype(0.0f16) ; // see 6.9.3 [basic.extended.fp]
    #endif
    #if defined(__STDCPP_FLOAT32_T__)
      using float32_t = implementation-defined decltype(0.0f32) ; // see 6.9.3 [basic.extended.fp]
    #endif
    #if defined(__STDCPP_FLOAT64_T__)
      using float64_t = implementation-defined decltype(0.0f64) ; // see 6.9.3 [basic.extended.fp]
    #endif
    #if defined(__STDCPP_FLOAT128_T__)
      using float128_t = implementation-defined decltype(0.0f128) ; // see 6.9.3 [basic.extended.fp]
    #endif
    #if defined(__STDCPP_BFLOAT16_T__)
      using bfloat16_t = implementation-defined decltype(0.0bf16) ; // see 6.9.3 [basic.extended.fp]
    #endif
  }