#include <mutex> 导致 bind() 函数调用在编译时抛出错误,为什么?

RAZ_Muh_Taz

我以前从未见过这个问题,也不确定如何寻找解决此问题的方法,因为我什至不确定要寻找什么。我有一些代码使用套接字来读/写我的 linux 设备驱动程序。此代码经过测试并按原样运行。

出于线程安全的原因,我想在我的程序中添加一个互斥锁,但是一旦我添加#include <mutex>到我的程序的 main.cpp 文件中,并且只有该行该<sys/socket.h> bind()函数在编译时抛出错误......

这是导致问题的行,一旦我#include <mutex>在我的代码中没有更改任何其他内容

if (bind(sock_fd, (struct sockaddr *)&saddr, sizeof(saddr)) < 0)

dp_comm.cpp:在函数“int setup_socket_to_dev(const char*, int*)”中:dp_comm.cpp:160:64:错误:“std::bind(_Functor&&,_ArgTypes&& ...) 中的“operator<”不匹配[with _Functor = int&, _ArgTypes = {sockaddr*, unsigned int}, typename std::_Bind_helper<_Functor, _ArgTypes>::type = std::_Bind]((* &((sockaddr*)(&saddr))) , (* &20u)) < 0'

我还尝试创建一个 int 并使其等于的返回值 bind()

int ret_bind = bind(sock_fd, (struct sockaddr *)&saddr, sizeof(saddr));

dp_comm.cpp:在函数“int setup_socket_to_dev(const char*, int*)”中:dp_comm.cpp:160:71:错误:无法将“std::_Bind_helper::type {aka std::_Bind}”转换为“int” ' 在初始化

为什么会#include <mutex>导致我的编译器在bind()调用时出错?

当我#include <mutex>是以下代码时,代码将编译的唯一方法

bind(sock_fd, (struct sockaddr *)&saddr, sizeof(saddr));

这是怎么回事?

IA型

你可能有

using namespace std;

在您的代码中的某处,您不应该这样做bind()带插座的功能正在被混淆std::bind(),其在定义<functonal>(并且其<mutex>可能包括)。

如果你绝对不能删除using namespace std;,那么你可以消除歧义选择bind()用前缀它在全局命名空间功能::,即::bind(...)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么include('../ myscript.php')导致错误?

来自分类Dev

由于#include <graphics.h>而导致的错误

来自分类Dev

使用 <#include> 导致错误:找不到资源

来自分类Dev

为什么重复的安装--bind导致空的/ dev / pts?

来自分类Dev

为什么“ bind〜/ .inputrc”导致我的右斜杠键('/')被禁用,直到重新登录?

来自分类Dev

MvvMCross bind to <include> in android layout

来自分类Dev

linux clone()函数导致奇怪的编译错误,为什么?

来自分类Dev

为什么 enable_if 失败会导致编译时错误?

来自分类Dev

为什么将额外的参数传递给C函数不会导致编译时错误?

来自分类Dev

std :: bind将成员函数绑定到nullptr的实例,导致此指针看似随机

来自分类Dev

mysqli_stmt_bind_param导致致命错误:内存容量耗尽

来自分类Dev

将@Bind用于Dropwizard API会导致SQL语法错误

来自分类Dev

BigDecimal 方法调用导致编译时错误

来自分类Dev

Laravel include导致错误:方法Illuminate \ View \ View :: __ toString()不得引发异常

来自分类Dev

为什么= +不会导致编译错误?

来自分类Dev

readline 的 rl_parse_and_bind 导致崩溃

来自分类Dev

Boost Asio - boost::bind 导致程序崩溃

来自分类Dev

调用c函数时,“ import fmt”,“ import C”的顺序导致生成错误,为什么?

来自分类Dev

ng-include导致角度问题

来自分类Dev

ng-include导致角度问题

来自分类Dev

在函数中调用stop()会导致R CMD Check抛出错误

来自分类Dev

为什么当表达式导致编译器错误而不是语句导致非穷尽时?

来自分类Dev

为什么Mutex在处置时不被释放?

来自分类Dev

在GridView中使用Eval If / Else / EndIf会导致错误的数据绑定方法,例如Eval(),XPath()和Bind()

来自分类Dev

在GridView中使用Eval If / Else / EndIf会导致错误的数据绑定方法,例如Eval(),XPath()和Bind()

来自分类Dev

std :: mutex的访问器函数

来自分类Dev

while的意义是什么(pthread_mutex_trylock(mutex))

来自分类Dev

什么是PTHREAD_MUTEX_INITIALIZER?

来自分类Dev

为什么会导致错误?

Related 相关文章

  1. 1

    为什么include('../ myscript.php')导致错误?

  2. 2

    由于#include <graphics.h>而导致的错误

  3. 3

    使用 <#include> 导致错误:找不到资源

  4. 4

    为什么重复的安装--bind导致空的/ dev / pts?

  5. 5

    为什么“ bind〜/ .inputrc”导致我的右斜杠键('/')被禁用,直到重新登录?

  6. 6

    MvvMCross bind to <include> in android layout

  7. 7

    linux clone()函数导致奇怪的编译错误,为什么?

  8. 8

    为什么 enable_if 失败会导致编译时错误?

  9. 9

    为什么将额外的参数传递给C函数不会导致编译时错误?

  10. 10

    std :: bind将成员函数绑定到nullptr的实例,导致此指针看似随机

  11. 11

    mysqli_stmt_bind_param导致致命错误:内存容量耗尽

  12. 12

    将@Bind用于Dropwizard API会导致SQL语法错误

  13. 13

    BigDecimal 方法调用导致编译时错误

  14. 14

    Laravel include导致错误:方法Illuminate \ View \ View :: __ toString()不得引发异常

  15. 15

    为什么= +不会导致编译错误?

  16. 16

    readline 的 rl_parse_and_bind 导致崩溃

  17. 17

    Boost Asio - boost::bind 导致程序崩溃

  18. 18

    调用c函数时,“ import fmt”,“ import C”的顺序导致生成错误,为什么?

  19. 19

    ng-include导致角度问题

  20. 20

    ng-include导致角度问题

  21. 21

    在函数中调用stop()会导致R CMD Check抛出错误

  22. 22

    为什么当表达式导致编译器错误而不是语句导致非穷尽时?

  23. 23

    为什么Mutex在处置时不被释放?

  24. 24

    在GridView中使用Eval If / Else / EndIf会导致错误的数据绑定方法,例如Eval(),XPath()和Bind()

  25. 25

    在GridView中使用Eval If / Else / EndIf会导致错误的数据绑定方法,例如Eval(),XPath()和Bind()

  26. 26

    std :: mutex的访问器函数

  27. 27

    while的意义是什么(pthread_mutex_trylock(mutex))

  28. 28

    什么是PTHREAD_MUTEX_INITIALIZER?

  29. 29

    为什么会导致错误?

热门标签

归档