c语言中target,C 11:使用std :: function :: target()指向成员函数的指针
我知道这已经是一个长期讨论的话题,但我还没有找到满足我的答案.
简而言之:即使使用C 11的function :: target()功能,是不是可以将成员函数指针传递给c风格的方法?
以下代码不起作用:对mbf.target()的调用将返回0,从而生成SEGFAULT.我不明白为什么,因为我将成员函数绑定到泛型函数对象,所以类型应该没问题.
我做错了什么或者我想做一些不可能的事情?
#include
using namespace std;
typedef void (*CBType)(int,int);
CBType myCB = 0;
void regCallback(CBType cb)
{
myCB = cb;
}
class A
{
public:
void memberCB(int a,int b) {}
void registerCallback()
{
auto mbMem = mem_fn(&A::memberCB);
function mbf =
bind(mbMem,*this,placeholders::_1,placeholders::_2);
regCallback(*mbf.target());
}
};
int main()
{
A inst;
inst.registerCallback();
}
c语言中target,C 11:使用std :: function :: target()指向成员函数的指针相关推荐
- 使用std::function 把类成员函数指针转换为普通函数指针
前言 这是改造前一篇 设计模式 的基础,使通知者不必知道观察者的类名和函数名,只需要知道更新函数的原型即可. 开发环境:WIN7 32位 + VS2010 发现在VS2005中使用std::funt ...
- C++11中std::function的使用
类模版std::function是一种通用.多态的函数封装.std::function的实例可以对任何可以调用的目标实体进行存储.复制.和调用操作,这些目标实体包括普通函数.Lambda表达式.函数指 ...
- 【C++】C++11的std::function和std::bind用法详解
在设计回调函数的时候,无可避免地会接触到可回调对象.在C++11中,提供了std::function和std::bind两个方法来对可回调对象进行统一和封装. 可调用对象 C++中有如下几种可调用对象 ...
- C语言中task的用法,c – 在std :: packaged_task中使用成员函数
我想做的应该很容易,但我不明白-- 我想要做的就是在后台启动一个类的成员函数 在某个特定的时间点.该功能的结果也应该是"外部"可用的.所以我想在构造函数中准备任务(设置future ...
- C++ 11三个新特性的简单使用 - std::function、lambda 表达式、智能指针
使用Dev C++:先设置Dev C++ 支持 C++ 11:见此文后部: https://blog.csdn.net/bcbobo21cn/article/details/111466179 1 s ...
- C++11: std::function<void()> func
std::function介绍 类模版std::function是一种通用.多态的函数封装.std::function的实例可以对任何可以调用的目标实体进行存储.复制.和调用操作,这些目标实体包括普通 ...
- c语言中5 2 11 意思,新概念第二册课后题答案详解:Lesson55
新概念英语作为一套世界闻名的英语教程,以其全新的教学理念,有趣的课文内容和全面的技能训练,深受广大英语学习者的欢迎和喜爱.为了方便同学们的学习,新东方在线新概念英语网为大家整理了最全面的新概念第二册课 ...
- c语言中strtod用法,C语言进阶之路:strtod()函数的用法!
函数原型: #include double strtod(const char *nptr, char **endptr); C语言及C++中的重要函数. 名称含义 strtod(将字符串转换成浮点数 ...
- c语言中count的头文件,C++ STL算法系列1---count函数
一.count函数 algorithm头文件定义了一个count的函数,其功能类似于find.这个函数使用一对迭代器和一个值做参数,返回这个值出现次数的统计结果. 编写程序读取一系列int型数据,并将 ...
最新文章
- 24、Cocos2dx 3.0游戏开发找小三之网格动作:高炫酷的3D动作
- Linux df -h查看磁盘使用情况
- boost::noncopyable用法的测试程序
- Linux批量部署 EXPECT 使用
- php基础教程 第二步 通俗易懂的学习变量、常量与数据类型
- 怎么修改提交git是的用户名_git 修改提交邮箱以及用户名-亲测
- jdk Double类具体实现
- 区块链 xuperchain xuper-java-sdk 部署使用EVM 合约 教程
- PDCA循环和GTD时间管理
- Userland中debian系统打开chromium
- 不想在网易博客写技术文章了
- 3.9提取电话号的区号、电话号、分机号
- Apple开启双重认证过程
- window关闭烦人的右下角广告
- Davinci的异构多核间通信基础组件SysLink
- 目前Java开发人员需求大吗 Java就业方向是什么
- 英读廊——为什么夏天白天打瞌睡晚上却睡不着?
- heic(HEIF)格式图像处理(一)
- 赛题类型 Web、Crypto、Pwn、Reverse、Misc 各是指什么意思?
- JavaScript jq 三位分节法 input输入数字时每3位使用逗号隔开
热门文章
- 渗透测试学习笔记之案例二
- 使用一片74LS74实现四分频
- 记录自己一次搭建Zabbix及微信报警过程
- ethercat环境搭建(igh安装)
- python 怎么输入单引号_在python中如何输入单引号
- php如何登陆后才能看见,让WordPress的作者在后台只能看到自己的文章
- dovecot+mysql 空壳邮件
- dawang素材html5,我推荐 5 个 GIF 动图素材网站
- xls所在服务器没有响应,服务器里面的excel表格打不开是怎么回事?!excle表格打不开怎么回事...
- 吃一堑长一智!nodemysql同步查询