프로그래밍
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);
반응형