“=”: 没法从“std::_Binder”转换为“int”解决方案

2022年01月16日 阅读数:3
这篇文章主要向大家介绍“=”: 没法从“std::_Binder<std::_Unforced,SOCKET &,SOCKADDR *,unsigned int>”转换为“int”解决方案,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

场景说明socket

int err = bind(sockSrv, (SOCKADDR*)&addrServ, sizeof(SOCKADDR)); //把socket 绑定到指定地址上ide

编译代码出错提示:函数

错误 C2440 “=”: 没法从“std::_Binder<std::_Unforced,SOCKET &,SOCKADDR *,unsigned int>”转换为“int”spa

分析element

从std错误提示,说明调用的是std做用域下的函数,而不是winsock库的绑定函数作用域

而在代码的头文件中引用了std做用域string

using namespace std;it

致使编译调用std::bind出现的问题编译


解决方案class

int err = ::bind(sockSrv, (SOCKADDR*)&addrServ, sizeof(SOCKADDR)); //把socket 绑定到指定地址上

bind前面加冒号,说明是全局做用域函数调用,而不是std::bind函数调用

反思

通常不用using namespace std;而是在调用的时候指定,例如

std::string 

std::cout

上一篇: Spring 事件机制
下一篇: GeoServer介绍