gpt4 book ai didi

c++ - clang-6 和 -std=c++17——无法调用 bind(2)

转载 作者:行者123 更新时间:2023-11-30 03:26:21 26 4
gpt4 key购买 nike

尝试使用带有 -std=c++17 标志的 clang++ 6.0 版编译以下代码:

   if (bind(ssock, res->ai_addr, res->ai_addrlen) != 0)
{
return -1;
}

我收到以下错误:

.../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 .

这是怎么回事?我该如何很好地解决这个问题——并使代码可以用早期的编译器编译?

最佳答案

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

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

关于c++ - clang-6 和 -std=c++17——无法调用 bind(2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48362924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com