bind
placeholders is underspecifiedSection: 22.10.15.5 [func.bind.place] Status: C++23 Submitter: Tomasz KamiĆski Opened: 2022-11-09 Last modified: 2023-11-22
Priority: Not Prioritized
View all other issues in [func.bind.place].
View all issues with C++23 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.
Modify 22.10.15.5 [func.bind.place] as indicated:
namespace std::placeholders { // M is theimplementation-definednumber 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.