[问题] bind 函数问题

楼主: yshihyu (yshihyu)   2016-02-16 22:07:40
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
vc++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
winsock
if (bind(s, (struct sockaddr *)&server, sizeof(server)) == SOCKET_ERROR)
{
exit(EXIT_FAILURE);
}
今天工作发现一个问题, 就是在c++ 使用 bind , 结果bind 编译过不了
网络上找资料后来加上:: 变成 ::bind 才可以编译过
想请问一下加上:: 作用是什么?
还有个疑问是bind 是有区分不同lib 的bind 函数吗?
谢谢
作者: LPH66 (-6.2598534e+18f)   2016-02-16 23:00:00
<functional> 里有一个 std::bind, winsock 这边的则是不在 namespace 里的 bind, 所以当 using namespace std;时前者会打开来到全域空间里跟后者混在一起, 因此单写 bind就不知道指的是哪个 bind 了; 加 :: 就是特别指定“我要那个不在 namespace 里的 bind”反过来如果想指定 std 里的那个 bind 就写 std::bind

Links booklink

Contact Us: admin [ a t ] ucptt.com