프로그래밍

c++ Socket프로그래밍에서 bind의 namespace 문제 해결방법

pgmaru 2019. 5. 3. 17:21
반응형

c++에서 소켓 프로그래밍을 하는 경우,

특별히 namespace를 지정하지 않았음에도

컴파일시에 bind 함수의 namespace가

자동으로 std::bind로 지정되는 경우가 있다.

namespace를 지정하지 않더라도,

컴파일러에서 자동으로 가장 비슷한 namespace를 찾아내어

지정하기 때문이다.

bind함수와 std::bind함수는 전혀 다른 함수이기 때문에,

이런 경우에는 명시적으로 namespace가 없다는 것을

컴파일러에 설명해 주어야 한다.

 

그러기 위해서는, 함수 앞에 그냥 ::을 붙여주면 된다.

예를 들면 다음과 같다.

 

// bind(_sockfd, _sockaddr, _addrlen);
// ===>
::bind(_sockfd, _sockaddr, _addrlen);

 

 

반응형