• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

cmake/H31-Aug-2014-

examples/H03-May-2022-

include/LuaGlue/H31-Aug-2014-

.gitignoreH A D31-Aug-201413

readme.mdH A D31-Aug-20141.8 KiB

readme.md

1LuaGlue
2=======
3
4LuaGlue is a C++11 template based binding library.
5
6It is contained entirely in headers, with no code to link to.
7
8License: Zlib
9
10example
11-------
12
13Lua Code:
14```lua
15local test = Foo.new(333);
16test:abc(1,2,3);
17
18print("ONE: "..Foo.ONE);
19print("TWO: "..Foo.TWO);
20print("THREE: "..Foo.THREE);
21```
22
23C++ Code
24```cpp
25#include <LuaGlue/LuaGlue.h>
26
27class Foo
28{
29	public:
30		Foo(int i) { printf("ctor! %i\n", i); }
31		~Foo();
32
33		int abc(int a, int b, int c) { printf("%i:%i:%i\n", a,b,c); return 143; }
34		static void aaa() { printf("aaa!\n"); }
35};
36
37int main(int, char **)
38{
39	LuaGlue state;
40
41	state.
42		Class<Foo>("Foo").
43			ctor<int>("new").
44			method("abc", &Foo::abc).
45			method("aaa", &Foo::aaa).
46			constants( { { "ONE", 1 }, { "TWO", 2.0 }, { "THREE", "three" } } ).
47		end().open().glue();
48
49	if(!state.doFile("foo.lua"))
50	{
51		printf("failed to dofile: foo.lua\n");
52		printf("err: %s\n", state.lastError().c_str());
53	}
54
55	return 0;
56}
57```
58
59LICENSE
60=======
61
62> Copyright (c) 2013 Thomas Fjellstrom
63>
64> This software is provided 'as-is', without any express or implied
65> warranty. In no event will the authors be held liable for any damages
66> arising from the use of this software.
67
68> Permission is granted to anyone to use this software for any purpose,
69> including commercial applications, and to alter it and redistribute it
70> freely, subject to the following restrictions:
71>
72>   1. The origin of this software must not be misrepresented; you must not
73>   claim that you wrote the original software. If you use this software
74>   in a product, an acknowledgment in the product documentation would be
75>   appreciated but is not required.
76>
77>   2. Altered source versions must be plainly marked as such, and must not be
78>   misrepresented as being the original software.
79>
80>   3. This notice may not be removed or altered from any source
81>   distribution.
82