Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Tomasu/LuaGlue
C++11 Lua 5.2 Binding Library
https://github.com/Tomasu/LuaGlue
Last synced: 18 days ago
JSON representation
C++11 Lua 5.2 Binding Library
- Host: GitHub
- URL: https://github.com/Tomasu/LuaGlue
- Owner: Tomasu
- License: zlib
- Created: 2013-05-24T03:16:57.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2015-10-22T18:34:58.000Z (about 9 years ago)
- Last Synced: 2024-07-31T22:53:32.996Z (3 months ago)
- Language: C++
- Size: 850 KB
- Stars: 79
- Watchers: 13
- Forks: 52
- Open Issues: 18
-
Metadata Files:
- Readme: readme.md
- License: LICENSE.txt
Awesome Lists containing this project
README
LuaGlue
=======![Coverity Status](https://scan.coverity.com/projects/2848/badge.svg)
[Coverity Status](https://scan.coverity.com/projects/2848)LuaGlue is a C++11 template based binding library.
It is contained entirely in headers, with no code to link to.
License: Zlib
example
-------Lua Code:
```lua
local test = Foo.new(333);
test:abc(1,2,3);print("ONE: "..Foo.ONE);
print("TWO: "..Foo.TWO);
print("THREE: "..Foo.THREE);
```C++ Code
```cpp
#includeclass Foo
{
public:
Foo(int i) { printf("ctor! %i\n", i); }
~Foo();
int abc(int a, int b, int c) { printf("%i:%i:%i\n", a,b,c); return 143; }
static void aaa() { printf("aaa!\n"); }
};int main(int, char **)
{
LuaGlue state;
state.
Class("Foo").
ctor("new").
method("abc", &Foo::abc).
method("aaa", &Foo::aaa).
constants( { { "ONE", 1 }, { "TWO", 2.0 }, { "THREE", "three" } } ).
end().open().glue();
if(!state.doFile("foo.lua"))
{
printf("failed to dofile: foo.lua\n");
printf("err: %s\n", state.lastError().c_str());
}
return 0;
}
```CHANGES
=======Aug 20 2014
-----------Large refactor finished. A large amount of internal structure and code changed.
Repo forks may break or fail to merge.Passing Lua Values like tables, functions and basic types is supported through
a new LuaGlueLuaValue type. For those times when you want a table or just don't
care what type is passed to a C/C++ function from lua.FUTURE
======- Pending name change, and large API break to add namespaces.
LICENSE
=======> Copyright (c) 2013 Thomas Fjellstrom
>
> This software is provided 'as-is', without any express or implied
> warranty. In no event will the authors be held liable for any damages
> arising from the use of this software.> Permission is granted to anyone to use this software for any purpose,
> including commercial applications, and to alter it and redistribute it
> freely, subject to the following restrictions:
>
> 1. The origin of this software must not be misrepresented; you must not
> claim that you wrote the original software. If you use this software
> in a product, an acknowledgment in the product documentation would be
> appreciated but is not required.
>
> 2. Altered source versions must be plainly marked as such, and must not be
> misrepresented as being the original software.
>
> 3. This notice may not be removed or altered from any source
> distribution.