This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of New status.

4617. P3505R4 and P2497R0 should not bump the same feature-test macro

Section: 17.3.2 [version.syn] Status: New Submitter: Jiang An Opened: 2026-08-27 Last modified: 2026-08-29

Priority: Not Prioritized

View other active issues in [version.syn].

View all other issues in [version.syn].

View all issues with New status.

Discussion:

It is mentioned in P3505R4 that the paper should be implemented as a defect report against C++17. However, P3505R4 bumps __cpp_lib_to_chars, while P2497R0 already bumped the same feature-test macro in C++26, and currently there is no way to indicating that the implementation has implemented P3505R4 but not P2497R0.

P2497R0 looks like a pure new feature which eases use of result types and thus doesn't seem suitable for DR. Additionally, libc++ has fully implemented the functional changes in P2497R0 but can't bump the FTM because libc++ still lacks long double support in <charconv>. So, maybe it would be better to make use another FTM for indicating P2497R0.

Proposed resolution:

This wording is relative to N5054.

  1. Modify 17.3.2 [version.syn], header <> synopsis, as indicated:

    […]
    #define __cpp_lib_char8_t                           201907L
      // freestanding, also in <atomic>, <filesystem>, <iosfwd>, <istream>, <limits>, <locale>, <ostream>,
      // <string>, <string_view>
    
    #define __cpp_lib_charconv_results                  202306L // also in <charconv>
    
    #define __cpp_lib_chrono                            202306L // also in <chrono>
    […]