我正在使用新的 libcxx 库,并且我有一个调用套接字函数的代码bind()
。问题是,当我键入using namespace std;
编译器时,以下代码会出现错误:
int res = bind(sockfd, (struct sockaddr *)&myAddr, sizeof(myAddr));
使用 clang (svn build) 的错误:
error: no viable conversion from '__bind<int &, sockaddr *, unsigned long>' to 'int'
int res = bind(sockfd, (struct sockaddr *)&myAddr, sizeof(myAddr));
我认为问题在于using namespace std;
将函数std::bind()
从标头<functional>
带到范围(尽管不包括标头)。由于我正在使用使用整个命名空间 std 的第三方库,因此我无法轻松地将类名更改为完全限定名。
我想知道这是否是库实现中的问题,或者 C++11 中是否有一些新规则可能会破坏使用bind()
. 对此的任何想法将不胜感激。
谢谢
罗马