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.

4567. Feature test macro value for apply_result, is_applicable

Section: 17.3.2 [version.syn] Status: New Submitter: Tomasz KamiƄski Opened: 2026-04-08 Last modified: 2026-04-13

Priority: Not Prioritized

View other active issues in [version.syn].

View all other issues in [version.syn].

View all issues with New status.

Discussion:

The paper P1317R2 "Remove return type deduction in std::apply", which changed the definition of std::apply and introduced the new traits is_applicable, is_nothrow_applicable, and apply_result, was accepted in Sofia.

In Croydon we moved the P3795R2 "Miscellaneous Reflection Cleanup", that adds the reflection equivalents of above, under __cpp_lib_reflection.

This leads to situation, when an implementation that does not yet implement P1317R2, and thus does not define the corresponding meta functions, should not define __cpp_lib_reflection.

I propose to assign the following __cpp_lib_apply macro values to account to above papers:

The proposed resolution for the standard working paper represents only the effective end state.

Proposed resolution:

This wording is relative to N5032.

  1. Modify 17.3.2 [version.syn] as indicated:

    #define __cpp_lib_apply 202506L202603L // freestanding, also in <tuple>, <type_traits>, <meta>