Создать поток из member function, если std::mutex также является member variable
К сожалению, если попытаться сделать
#include <thread>
#include <mutex>
class A
{
public:
void foo() noexcept
{
//code
}
private:
std::mutex m{};
};
int main()
{
A a;
std::thread(&A::foo, a);
}
код не соберётся. Всё из-за того, что std::mutex находится в классе. Если его убрать, то код собирается. Почему так происходит? Как мне запустить поток от мембер функции, когда у меня мьютекс находится внутри класса?