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

### 3824. Number of `bind` placeholders is underspecified

Section: 22.10.15.5 [func.bind.place] Status: WP Submitter: Tomasz Kamiński Opened: 2022-11-09 Last modified: 2022-11-17

Priority: Not Prioritized

View all other issues in [func.bind.place].

View all issues with WP status.

Discussion:

This is resolution of GB-95 (22.10.15.5 [func.bind.place] Number of `bind` placeholders is underspecified).

22.10.2 [functional.syn] and 22.10.15.5 [func.bind.place] both contain a comment that says "M is the implementation-defined number of placeholders". There is no wording anywhere to say that there is any such number, only that comment.

[Kona 2022-11-09; Move to Immediate]

[2022-11-12 Approved at November 2022 meeting in Kona. Status changed: Immediate → WP.]

Proposed resolution:

This wording is relative to N4917.

1. Modify 22.10.15.5 [func.bind.place] as indicated:

   >     namespace std::placeholders {
   >       // M is the implementation-defined number of placeholders
   >       see below _1;
   >       see below _2;
   >                   .
   >                   .
   >                   .
   >       see below _M;
   >     }

   > > -?- The number `M` of placeholders is implementation-defined.

   > > -1- All placeholder types meet the Cpp17DefaultConstructible and Cpp17CopyConstructible requirements, and their default constructors and copy/move constructors are constexpr functions that do not throw exceptions. It is implementation-defined whether placeholder types meet the Cpp17CopyAssignable requirements, but if so, their copy assignment operators are constexpr functions that do not throw exceptions.