还在苦苦敲代码开发APP?你out啦! 试试积木搭建APP吧~

error C2280: 'std::mutex::mutex(const std::mutex &)' : attempting to reference a deleted function

来源:清泛原创     2016-10-24 17:53:37    人气:     我有话说( 0 人参与)

std::mutex是noncopyable的结构,因此不存在拷贝构造函数,所以这里错误提示引用已经删除的函数。错误示例代码如下:解决方法:将包含std::...

std::mutex是noncopyable的结构,因此不存在拷贝构造函数,所以这里错误提示引用已经删除的函数。

错误示例代码如下:

 

解决方法:

     将包含std::mutex的类的拷贝构造函数和赋值操作符重载函数,自定义或者标记为delete.

例如:

class Account {
public:
	Account(int id_, double ba = 0.0) :id(id_), balance(ba){}

	void withdraw(double amount){
		balance -= amount;
	}

	void deposit(double amount){
		balance += amount;
	}
	void printInfo() const {
		std::cout << "Account id: " << id << " balance: " << balance << std::endl;
	}
	Account(const Account& other) = delete;
	Account& operator=(const Account& other) = delete;
	friend void transfer(Account& from, Account& to, double amount);
private:
	double balance;
	int id;
	std::mutex m;
};

error C2280 mutex

注:本文为本站或本站会员原创优质内容,版权属于原作者及清泛网所有,
欢迎转载,转载时须注明版权并添加来源链接,谢谢合作! (编辑:admin)
分享到: