[問題] bind 函數問題

看板C_and_CPP作者 (yshihyu)時間8年前 (2016/02/16 22:07), 編輯推噓1(105)
留言6則, 1人參與, 最新討論串1/1
開發平台(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

02/16 23:00, , 1F
<functional> 裡有一個 std::bind, winsock 這邊的則是
02/16 23:00, 1F

02/16 23:00, , 2F
不在 namespace 裡的 bind, 所以當 using namespace std;時
02/16 23:00, 2F

02/16 23:01, , 3F
前者會打開來到全域空間裡跟後者混在一起, 因此單寫 bind
02/16 23:01, 3F

02/16 23:01, , 4F
就不知道指的是哪個 bind 了; 加 :: 就是特別指定
02/16 23:01, 4F

02/16 23:01, , 5F
「我要那個不在 namespace 裡的 bind」
02/16 23:01, 5F

02/16 23:02, , 6F
反過來如果想指定 std 裡的那個 bind 就寫 std::bind
02/16 23:02, 6F
文章代碼(AID): #1MmoqliK (C_and_CPP)