This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of C++23 status.
function
Section: 7.2.1 [fund.ts.v3::func.wrap.func.overview] Status: C++23 Submitter: Alisdair Meredith Opened: 2022-09-12 Last modified: 2023-11-22
Priority: Not Prioritized
View all issues with C++23 status.
Discussion:
Addresses: fund.ts.v3
The LFTSv3 bases its specification for experimental::function
on std::function
in the C++20 standard.
However, the wording was largely copied over from LFTSv2 which based its
wording on the C++14 standard.
For C++17, we removed the conditionally defined typedefs for the legacy binders
API, but this removal was not reflected in the TS. We are now left with a
specification referring to unknown types, T1
and T2
.
These typedefs should be excised to match the referenced standard.
[2022-09-23; Reflector poll]
Set status to Tentatively Ready after ten votes in favour during reflector poll.
[2022-11-12 Approved at November 2022 meeting in Kona. Status changed: Voting → WP.]
Proposed resolution:
This wording is relative to N4920.
Modify the synopsis in 7.2.1 [fund.ts.v3::func.wrap.func.overview] as indicated:
namespace std { namespace experimental::inline fundamentals_v3 { template<class> class function; // undefined template<class R, class... ArgTypes> class function<R(ArgTypes...)> { public: using result_type = R;using argument_type = T1;using first_argument_type T1;using second_argument_type = T2;using allocator_type = erased_type; // ... } }