std::function constructors overly generousSection: 22.10.17.3 [func.wrap.func] Status: NAD Concepts Submitter: Alisdair Meredith Opened: 2009-03-11 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [func.wrap.func].
View all issues with NAD Concepts status.
Discussion:
Addresses JP 39 [CD1]
There are no requires corresponding to F of std::function.
[ 2009-05-01 Daniel adds: ]
1070 removes the second constructor.
[ Batavia (2009-05): ]
We agree with the proposed resolution. Move to Tentatively Ready. If issue 1070 is accepted, the changes to the second constructor in this issue are moot.
[ 2009-07 Frankfurt: ]
Constructors have no definition.
Proposed resolution:
Correct as follows in 22.10.17.3 [func.wrap.func] (class definition)
template<class F, Allocator Alloc>
requires ConstructibleWithAllocator<F, Alloc>
&& call=Callable<F, ArgTypes...>
&& Convertible<call::result_type, R>
function(allocator_arg_t, const Alloc&, F);
template<class F, Allocator Alloc>
requires ConstructibleWithAllocator<F,Alloc>
&& call=Callable<F, ArgTypes...>
&& Convertible<call::result_type, R>
function(allocator_arg_t, const Alloc&, F&&);