cpp-ru / ideas

Идеи по улучшению языка C++ для обсуждения
https://cpp-ru.github.io/proposals
Creative Commons Zero v1.0 Universal
89 stars 0 forks source link

Добавить move-only std::function #454

Closed raidenluikang closed 2 years ago

raidenluikang commented 3 years ago

std::function не поддерживает move-only functors

_std::function <int ()> f = [ m = std::makeunique() ] (){ return *m; }; не компилируется

https://godbolt.org/z/hKhneEWz3

template <typename R, typename ... Args >
class function < R(Args ... ) >
{
   // ....
    template <typename F>
     function ( F && f) ; // -->почему f  требуется чтобы она было копируемый? 
};

Полезные ссылки:

apolukhin commented 3 years ago

Работ над идеей активно идет в https://wg21.link/p0288 Есть все шансы увидеть в C++23

apolukhin commented 2 years ago

В C++23 приняли https://wg21.link/p0288