C++11中std:bind()与SOCKET bind()冲突问题

在最近的项目中,使用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()来进行函数调用。

1人评论了“C++11中std:bind()与SOCKET bind()冲突问题”

  1. Pingback: 机器人位姿反馈控制开发日志 - Fivyex's Blog

发表评论

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据