C++11线程函数类型错误
使用C++11的线程库写程序的时候,使用类的成员函数作为线程函数,类成员函数形式大概如下:
class A {
public:
void foo()
{
cout << "foo!\n" ;
省略其他代码。。。
};
void start ();
};
在start()函数中想使用foo()函数作为线程函数,使用以下代码开启线程:
void start ()
{
thread t(&A::foo);
省略其他代码。。。
}
编译时报错为:
/usr/include/c++/4.8.2/functional: In instantiation of ‘struct std::_Bind_simple<std::_Mem_fn<void (slp::utils::config::*)()>()>’:
/usr/include/c++/4.8.2/thread:137:47: required from ‘std::thread::thread(_Callable&&, _Args&& ...) [with _Callable = void (slp::utils::config::*)(); _Args = {}]’
/usr/include/c++/4.8.2/functional:1697:61: 错误:no type named ‘type’ in ‘class std::result_of<std::_Mem_fn<void (slp::utils::config::*)()>()>’
typedef typename result_of<_Callable(_Args...)>::type result_type;
^
/usr/include/c++/4.8.2/functional:1727:9: 错误:no type named ‘type’ in ‘class std::result_of<std::_Mem_fn<void (slp::utils::config::*)()>()>’
_M_invoke(_Index_tuple<_Indices...>)
原因时函数为成员函数,有隐藏的this指针为参数,所以需要显示传入,修改为如下即可:
void start ()
{
thread t(&A::foo,this);
省略其他代码。。。
}
C++11线程函数类型错误相关推荐
- C++11向线程函数传递参数
template< class Function, class... Args > explicit thread( Function&& f, Args&& ...
- c++11线程池的实现原理及回调函数的使用
关于线程池 简单来说就是有一堆已经创建好的线程(最大数目一定),初始时他们都处于空闲状态.当有新的任务进来,从线程池中取出一个空闲的线程处理任务然后当任务处理完成之后,该线程被重新放回到线程池中,供其 ...
- catia二次开发:函数是否需要加括号 ,type类型 ,出现未定义变量类型错误,怎么破, 背景色设置 ,检查模块是否封闭 ,几何图形集是否存在某一个元素
文章目录 函数是否需要加括号 type类型 出现未定义变量类型错误,怎么破 背景色设置 检查模块是否封闭 几何图形集是否存在某一个元素 函数是否需要加括号 type类型 出现未定义变量类型错误,怎么破 ...
- linux线程函数大全
以下内容来源于网络,本人仅收集用于学习之用,如原作者有任何意见,可以给我留言,我会尽快将其删除. 索引: 1.创建线程pthread_create 2.等待线程结束pthread_join 3.分离线 ...
- 线程基本编程——线程函数大全
索引: 1.创建线程pthread_create 2.等待线程结束pthread_join 3.分离线程pthread_detach 4.创建线程键pthread_key_create 5.删除线程键 ...
- 软件安全之代码注入技术 向目标 PE 文件注入 DLL notepad lpk.dll 远程线程函数 提权函数 OpenProcess VirtualAllocEx
实验 4 代码注入技术 引言 1.实验说明 代码注入是将用户代码注入到其他进程或者可执行文件中,实现拦截目标进程运行过程的关键信息.改变目标进程或可执行文件原本执行流程等目的 2.实验目的 本实验通过 ...
- C++中 线程函数为静态函数 及 类成员函数作为回调函数(转载)
C++中 线程函数为静态函数 及 类成员函数作为回调函数 线程函数为静态函数: 线程控制函数和是不是静态函数没关系,静态函数是在构造中分配的地址空间,只有在析构时才释放也就是全局的东西,不管线程是否运 ...
- 【Linux 线程】常用线程函数复习《一》
1.pthread_create以及pthread_self函数 1 /**************************************************************** ...
- CreateThread创建线程函数详细讲解
CreateThread CreateThread函数创建一个要在调用进程的地址空间中执行的线程.(MSDN讲解如下) 处理CreateThread ( LPSECURITY_ATTRIBUTES l ...
最新文章
- 阿里某员工发飙:给我一点陪家人的时间行吗?真的想走了!
- CKEditor的安装与基本使用
- 三层架构,Struts2,SpringMVC实现原理图
- Android CookieSyncManager同步cookie
- boolean类型_JS核心理论之《数据类型、类型转换、深浅拷贝与参数传递》
- 编程判断元素归类_如何使用jquery判断一个元素是否含有一个指定的类(class)...
- linux 协议错误,在linux客户机上:协议错误,Vagrant无法挂载同步的文件夹_vagrant_开发99编程知识库...
- 计算机 64位和32位区别,32位和64位的区别
- List和Set中忽略的方法addAll(Collection c)和retainAll(Collection c)
- halcon 差异模型 异物_基于HALCON的形状匹配算法的研究和心得总结
- ProjectWise 工程内容管理及协同工作解决方案系列网络讲座
- express入门学习(一)
- python ffmpeg mp3文件转为wav文件
- 解决IISASP调用XmlHTTP出现msxml3.dll (0x80070005) 拒绝访问的错误
- 轻蜗牛直租平台-业务背景介绍
- python九九乘法口诀_Python3 九九乘法口诀(99乘法口诀)
- 老挑毛u盘一键装系统计算机意外地,u盘装系统 重装Win7系统出现提示计算机意外的重新启动或遇到错误怎么处理 我已经删除了所有分...
- 胡昌泽 day3笔记
- UI设计色彩趋势总结
- 前一个问题的答案后续
热门文章
- i your application is running here: http://localhost:8080
- Bootstrap的代码显示
- Android-电池优化Doze和Standby模式-AlarmManager失效
- 大数据凉了?不,凉的是不合法数据公司
- spring中自定义对象交给spring容器管理的4种方式
- 区块链开发入门:基于以太坊智能合约构建 ICO DApp
- 基于机器学习与人工智能的数据(数据库+大数据)技术
- 【java毕业设计】基于javaEE+原生Servlet+jsp的人力资源管理系统设计与实现(毕业论文+程序源码)——人力资源管理系统
- MAC Foxmail升级后邮件搜索功能失效了
- Steam好友隐身玩游戏?使用SteamWebApi获取好友的游戏时长,并用钉钉推送告诉你他在不在玩