看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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 函數嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.182.196.169 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1455631663.A.B14.html
LPH66: <functional> 裡有一個 std::bind, winsock 這邊的則是 02/16 23:00
LPH66: 不在 namespace 裡的 bind, 所以當 using namespace std;時 02/16 23:00
LPH66: 前者會打開來到全域空間裡跟後者混在一起, 因此單寫 bind 02/16 23:01
LPH66: 就不知道指的是哪個 bind 了; 加 :: 就是特別指定 02/16 23:01
LPH66: 「我要那個不在 namespace 裡的 bind」 02/16 23:01
LPH66: 反過來如果想指定 std 裡的那個 bind 就寫 std::bind 02/16 23:02