最近在使用封装一个Socket类时遇到函数冲突的问题,情况是这样的,Socket中有一个bind函数, 原型如下 :
// socket.h
int bind(int, const struct sockaddr *, socklen_t)
该函数是绑定Socket, 而在C++11中增加了std::bind(_Fp &&__f, _BoundArgs &&__bound_args...) 函数, 可以用该函数绑定函数指针, 当在C++类中添加了using namespace std;之后,如果你想调用socket.h中的bind方法则会出现问题, 使得bind函数调用不是你想要的行为。
解决方案是在使用socket.h的bind函数的类中不要使用using namespace std。