好几个项目都用了 Lua 作为配置文件语言,但是一直都用官方提供的 C API,写起来十分繁琐。本来大部分的配置文件都是 key-value 式的配置,简单地封装一下就足够了,但是本着完美主义的倾向一直都觉得要么就别封装,要么就写一个功能完善的,而函数调用和自定义类导出这部分一直没想明白怎么弄,因此迟迟没动手。至于为什么不直接使用 LuaBind 这样强大的东东,一方面是不喜欢 LuaBind 依赖 Boost 太臃肿,另一方面也是趁着这个机会学习一下。
从去年 10 月左右就开始磕磕碰碰地写,三两下就把变量部分搞定了,不过之后就停滞了。直到去年年底的时候看了下 C++11 提供的变长参数模板有了些头绪,于是写成了现在这样,总的来说已经基本可用,心里的成就感满满的,于是写点东西记录一下,也算是打个广告。关于这个库准备写两篇博客,第一篇从使用者的角度介绍一下使用方法,第二篇从开发者的角度写写演变过程及设计原则。这里介绍的是第一个提交的版本,后续有变化的话不再同步更新博客了,只会更新相关的文档。
哦,忘了打广告,代码放在 github 上,猛点 这里。需要 C++11 的支持,使用 g++ 编译时加上选项 -std=c++11。
变量设置
先来看一个“Hello, world!”式的程序:
#include <iostream>
using namespace std;
#include "luacpp.hpp"
using namespace
… 阅读全文…