这是一个关于用C僵局寻求++ 11标准。
在C ++中的并发中行动sec3.2.4,有一种用于防止多线程从死锁的示例。 对于球员没有这本书,另外,还有一个几乎是另一个类似的例子,你可以参考一下: http://en.cppreference.com/w/cpp/thread/lock_tag
我遇到的问题是,无论是代码的代码出现编译器错误在Visual Studio 2012的错误信息是:
'std::mutex::mutex': cannot access private member declared in class 'std::mutex'
这个问题也发生在比cppreference.com以下简单的代码:
struct bank_account {
std::mutex m;
};
void transfer(bank_account &from, bank_account &to)
{
std::lock(from.m, to.m);
}
int _tmain(int argc, _TCHAR* argv[])
{
bank_account my_account;
bank_account your_account;
std::thread t1(transfer, my_account, your_account); // compiler-error!
std::system("pause");
return 0;
}
任何想法,以解决在Visual Studio 2012这个问题?