在最近的项目中,使用socket进行网络套接字编程,其中使用upd协议进行传输。报错如下:
E0413:不存在从"std::_Binder<std::_Unforced, SOCKET &, SOCKADDR *, unsigned long long>"到"int"的适当转换函数
在C++11中,在命名空间std中添加了函数std::bind(),当需要使用socket中的bind()是,如果实现使用过了std的命名空间,会发生冲突。具体的解决方法有如下两种。
- 在使用bind()的类别中,不适用std的命名空间。避免冲突,这时可直接使用函数bind().
- 使用运算符::,在使用bind()函数时,添加运算符::,通过::bind()来进行函数调用。
Pingback: 机器人位姿反馈控制开发日志 - Fivyex's Blog