OOLua is a cross platform, test driven, dependency free and Open Source
library which uses C++03 template meta-programming along with pre-processor
magic to provide a fast binding between C++ and Lua.
Although the name of the library is OOLua you do not need to expose C++
classes or use the library in an OO manner; the only heirarchy of classes
that the library defines for itself are exception types when they are
The library provides:
The ability to easily bind stand alone functions.
Interaction with the stack using a simple typed interface.
Simplfied method to call Lua functions from C++.
Ease of configurabilty.
Error checking either with or without exceptions.
Simple typed Lua registry references.
Interaction with Lua Tables using a simple type.
Passing C++ classes and user types as light userdata.
Exposing C++ classes and heirarchies as full userdata without using C++'s RTTI and in a none intrusive manner.
Abilty to control which language owns which full userdata instances.
Binding member/virtual functions on full userdata
Binding static functions for full userdata types.
Binding class enumerations.
Binding public members.
Constructors for full userdata classes.
Compatibility with Rio Lua 5.1, 5.2 and 5.3 also LuaJIT 1.1 and 2.0
A guarantee that it does not call new willy nilly.
Support for shared_ptr.
Support for C++11 scoped enums.
Basically you can use as little or as much of the library as you like.