首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >clang-6和-std=c++17 -不能调用bind(2)

clang-6和-std=c++17 -不能调用bind(2)
EN

Stack Overflow用户
提问于 2018-01-21 01:48:08
回答 1查看 207关注 0票数 1

试图使用带有clang++标志的-std=c++17 Version6.0编译以下代码:

代码语言:javascript
复制
   if (bind(ssock, res->ai_addr, res->ai_addrlen) != 0)
   {
      return -1;
   }

我得到以下错误:

代码语言:javascript
复制
.../udt4/app/test.cpp:90:51: error: invalid operands
      to binary expression ('__bind<int &, sockaddr *&, unsigned int &>' and
      'int')
   if (bind(ssock, res->ai_addr, res->ai_addrlen) != 0)
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~
/usr/include/c++/v1/system_error:587:1: note: candidate function not viable: no
      known conversion from '__bind<int &, sockaddr *&, unsigned int &>' to
      'const std::__1::error_code' for 1st argument
operator!=(const error_code& __x, const error_code& __y) _NOEXCEPT
....

不知怎么的,完美的标准函数bind(2)似乎被重新声明为返回error_code的东西,而不是好的旧int

到底怎么回事?我如何很好地解决这个问题--并使早期的编译器能够编译代码?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-21 02:04:22

您的程序中可能有using namespace std或类似的,在这种情况下,编译器可能会认为您需要std::bind

要引用您可能真正想要的绑定,可以使用::bind

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48362924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档