Closed raidenluikang closed 2 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 требуется чтобы она было копируемый? };
Полезные ссылки:
Работ над идеей активно идет в https://wg21.link/p0288 Есть все шансы увидеть в C++23
В C++23 приняли https://wg21.link/p0288
std::function не поддерживает move-only functors
_std::function <int ()> f = [ m = std::makeunique() ] (){ return *m; }; не компилируется
https://godbolt.org/z/hKhneEWz3
Полезные ссылки: