设为首页 加入收藏

TOP

使用C++11实现C++17的apply(动态数组用作函数参数)
2017-06-26 10:23:07 】 浏览:248
Tags:使用 实现 apply 动态 用作 函数参数

标题有点错误,apply是用tuple做参数,调用一个函数。这个标题是为了能更好的适配搜索关键字。动态数组用作函数参数更适合嵌入了脚本环境的C++程序,比如lua或java script(js)。


若有疏忽或改进,请评论,谢谢。


VS2017虽然实现了一些C++17特性,但没有apply(也许我没发现或有替代),而且即使以后更新添加了,也不是很满足我提到的数组转参数列表。


下面是VS2015.3测试通过的代码。


写脚本封装(Wrapper)功能一般都是把C++函数(一般是成员函数)注册到脚本的环境,我看了很多开源作者都重载了很多模板类/模板函数,其实都挺类的,虽然都是一些体力活,但一旦修改就是批量的。


本文参考了stackoverflow的Johannes Schaub的回复,附录有链接。


代码中的intint只是一个自动转换例子而已,什么也没做,你可以替换为你的脚本对象转原生对象的转换器。


代码的核心部分是嵌套的模板类继承,这一段比较烧脑子:


全部代码,无输出,请自行添加,同样,也不需要其它头文件:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Linux与Windows上获取当前堆栈信息 下一篇C++预声明类引发的无法解析外部符..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目