This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

std::function with std::unique_ptr argument


Hi, I'm trying to use a std::function with std::unique_ptr arguments but
the std::function invocation ends up using std::unique_ptr copy ctor,
which is private/deleted.

Since std::function is a forward call wrapper, its operator() should
have forwarded properly its arguments to the wrapped function, but

M_invoker(_M_functor, __args...);

and

(*_Base::_M_get_pointer(__functor))(__args...);


doesn't seem to do that. IMHO it should be

_M_invoker(_M_functor, std::forward<_ArgTypes>(__args)...);

(*_Base::_M_get_pointer(__functor))(std::forward<_ArgTypes>(__args)...);


Any objections?

Regards,
Rodolfo Lima


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]