最近没有续写 idlcpp 的教程, 因为忙着对它进行大幅度的修改。
一开始本是计划用idlcpp对付新写的代码,让这些新写的代码能够很容易提供给脚本使用。后来又希望能将大量现存的代码移植过来,毕竟有大量的C/C++程序库。若能将这些库移植到脚本语言中,必将提高脚本语言的实用性。于是就开始尝试移植现有的一些库,然后就发现了一些问题。
1. 模板功能太弱。
2. 重载函数限制比较大。
3. 没有运算符重载。
4. 因为用ptr代替*,用ref代替&,移植时改起来麻烦。
针对上述问题,决定对idlcpp进行修改。现在终于告一段落,经试验 std::vector 移植基本没有问题,估计对付其他一些不是很变态模板库基本没有问题。但是std::vector的移植版在性能上有大大的问题,在lua中测试与lua的表相比有数倍的性能差距,估计是因为过度的包装。这一点也是没有办法,为了通用必然要付出一些性能代价。当然这不是典型的C++脚本混合编程的情况,所以也不必过分担心。
近期考虑移植一些常用的C/C++库,首先是C标准库和C++标准库。然后捡一些自己会用到的进行移植。
由于idlcpp在语法层面也进行了一些改动,所以以前写的教程都进行了修改。
其中第一篇在这