idlcpp 功能改进
最近没有续写 idlcpp 的教程, 因为忙着对它进行大幅度的修改。
一开始本是计划用idlcpp对付新写的代码,让这些新写的代码能够很容易提供给脚本使用。后来又希望能将大量现存的代码移植过来,毕竟有大量的C/C++程序库。若能将这些库移植到脚本语言中,必将提高脚本语言的实用性。于是就开始尝试移植现有的一些库,然后就发现了一些问题。
1. 模板功能太弱。
2. 重载函数限制比较大。
3. 没有运算符重载。
4. 因为用ptr代替*,用ref代替&,移植时改起来麻烦。
针对上述问题,决定对idlcpp进行修改。现在终于告一段落,经试验 std::vector 移植基本没有问题,估计对付其他一些不是很变态模板库基本没有问题。但是std::vector的移植版在性能上有大大的问题,在lua中测试与lua的表相比有数倍的性能差距,估计是因为过度的包装。这一点也是没有办法,为了通用必然要付出一些性能代价。当然这不是典型的C++脚本混合编程的情况,所以也不必过分担心。
近期考虑移植一些常用的C/C++库,首先是C标准库和C++标准库。然后捡一些自己会用到的进行移植。
由于idlcpp在语法层面也进行了一些改动,所以以前写的教程都进行了修改。
其中第一篇在这
idlcpp 功能改进的更多相关文章
- [功能改进]Live Writer发博支持“建分类、加标签、写摘要”
以前您在园子里用Windows Live Wirter发布博文是不是有以下三个不爽: 不爽1:如果想在发布随笔时新建分类并将随笔添加至该分类,需要先在博客后台添加分类,然后在Live Writer中刷 ...
- PHP 5.6正式发布:新特性、及功能改进介绍
经过了长时间的开发测试,新版本PHP程序(PHP5.6正式版)终于发布了.新版本中加入了一些实用的新特性,也摒弃了一些冗余的功能.同时,也对部分原有功能进行了改进.下面就一起看看PHP 5.6正式版到 ...
- 王者荣耀交流协会互评Beta版本及答复功能改进建议、Bug修正
互评Beta版本 欢迎来怼团队博客园安卓APP Thunder团队爱阅app 探路者团队贪吃蛇 Hello World!团队项目空天猎 答复功能改进建议 答复其他各组给出的“就现有技术和工作量,不改变 ...
- “四则运算生成程序——GUI支持和部分功能改进”链接
项目成员:张金生 张政 <正文随笔发布在张金生博客中> 四则运算生成程序——GUI支持和部分功能改进
- What's New in iOS9 iOS9功能改进
What's New in iOS9 This article summarizes the key developer-related features introduced in iOS 9, w ...
- nopCommerce 3.3正式发布及新增功能改进
nopCommerce是一套优秀开源且基于Asp.net MVC的开源商城系统,nopCommerce 3.x经历长时间多个版本重构优化改进,目前已经趋于完善与成熟! nopCommerce 3.3正 ...
- C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 即时消息提醒功能改进
可以给自己的信息管理系统增加一些即时消息提醒功能,简单方便,一般是一行代码就可以发送提醒信息了,方便二次开发,个性化改进. 1:可以用简拼,快速查找内部员工. 2:双击直接可以发QQ消息. 3:双击直 ...
- 四则运算生成程序——GUI支持和部分功能改进
项目成员:张金生 张政 工程地址: https://coding.net/u/jx8zjs/p/paperOne/git ssh://git@git.coding.net:jx8zjs/pap ...
- 爱阅app --- 答复功能改进建议
共有四组评论,接下来一一答复. 第一组: 希望增加的功能: 1.希望能够继续完善书签功能,增加逐条删除书签功能. 2.能够在爱阅内部打开APP中提供的网址,用户选择一款阅读APP,当然不想每看一本新的 ...
随机推荐
- SQL Server 查询表备注信息的语句
--name 字段名称--user_type_id --max_length 最大长度--is_nullable 是否允许空--remark 描述SELECT c.name, c.user_ty ...
- 自定义UISearchBar
先上系统默认的UISearchBar,然后用KVO修改 UISearchBar *searchBar = [[UISearchBar alloc]initWithFrame:_topView.boun ...
- Java 项目优化实战
https://blog.coding.net/blog/java-coding-performance 1 Visual VM 2 优化一 2.1 背景 2.2 原实现 2.3 剖析 2.4 方案 ...
- oracle创建密码文件的语句
orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=oracle entries=5;
- 给angularJs的service建模
先回顾一下我们遇到的问题: 通过一个dialogService创建对话框,并将该service的参数数据通过resolve的方式传递给对话框的controller. controller解析数据后放置 ...
- window下flask开发环境搭建
1.安装python 官网下载https://www.python.org/downloads/,按提示安装就行,记住安装目录,把它添加到系统path中. 2.安装pip 官网下载pip文件:http ...
- PHP 实现单一入口 apache配置
在apache的httpd.conf加入,需要把LoadModule rewrite_module modules/mod_rewrite.so前面的“#”去掉 DocumentRoot / < ...
- OD使用教程10
首先载入程序,然后Ctrl+N打开输入输出表 然后直接输入要找到函数,找到之后下断点,右键-在每个参考上设置断点 然后运行程序来到第一个断点处 然后f8走,开始找注册码没找到就换一个函数,然后看 ...
- 写了一个基于React+Redux的仿Github进度条
曾经实现过Angular版,这次感觉用了高大上的React却写了更多的代码,需要的配置也更多了,有利有弊吧. 但这个“导航条问题”很有意思,涉及到在Redux中写timer,其实我很困惑,到底如何完美 ...
- Linux echo, sort, sed 等一些命令总结
linux echo, sort, sed是初学linux shell script 的一些常用的命令.基本上来说,如果能够掌握了这些命令,我们就能写出一些不错的linux脚本.以下是我遇到的以下常用 ...