#include 与 bind函数会有矛盾

#include<functional> 与 bind函数会有冲突
今日偶然发现的,当包含#include<functional>时,socket无法正确绑定;
如下
if (bind(serverSocket, (sockaddr*)&serveraddr, sizeof(serveraddr)) == SOCKET_ERROR)
{
 ……
}
vs编译时会报错,提示 == 类型不对
哪位高人可以解释一下;

------解决方案--------------------
stl也有个bind
在functional头文件里

template<class Fty, class T1, class T2, ..., class TN>
unspecified bind(Fty fn, T1 t1, T2 t2, ..., TN tN);
template<class Ret, class Fty, class T1, class T2, ..., class TN>
unspecified bind(Fty fn, T1 t1, T2 t2, ..., TN tN);

socket函数是比较蛋疼,stl也有,命名不够专业啊
比如listen、send之类的,字面含义比较模糊
------解决方案--------------------
所以平时还是不要随便用using namespace std;
还是这样用std::xxx比较好