//------------------------------------------------------------------------------
struct A
{
A(){}
A(A&&){}
A& operator=(A&&){return *this;}
void operator()(){}
private:
A(const A&);
A& operator=(const A&);
int x;
};
//------------------------------------------------------------------------------
int main()
{
A a;
std::function<void()> func(std::move(a));
}
'A:: A': не может получить доступ к закрытому члену, объявленному в классе 'A'
Кажется, что когда я фиксирую что-то по ссылке или const
, я могу сделать не скопируемую лямбду. Однако, когда я это делаю, он действительно работает, чтобы дать ему std::function
.