diff options
author | chai <chaifix@163.com> | 2021-11-08 01:17:11 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-11-08 01:17:11 +0800 |
commit | efce5b6bd5c9d4f8214a71e0f7a7c35751710a4c (patch) | |
tree | 0789475ded5c377667165a3ddb047ca6703bcf33 /ThirdParty/toluapp/src/tests/tclass.h | |
parent | ed78df90944bbe6b7de7308bda2bf3a7f1bc3de6 (diff) |
+ tolua
+ lpeg
Diffstat (limited to 'ThirdParty/toluapp/src/tests/tclass.h')
-rw-r--r-- | ThirdParty/toluapp/src/tests/tclass.h | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/ThirdParty/toluapp/src/tests/tclass.h b/ThirdParty/toluapp/src/tests/tclass.h new file mode 100644 index 0000000..de64ae6 --- /dev/null +++ b/ThirdParty/toluapp/src/tests/tclass.h @@ -0,0 +1,121 @@ +#ifndef TCLASS_H +#define TCLASS_H + +#include <stdio.h> + +namespace Test { + +class Tst_Dummy +{ +}; + +class Tst_A +{ + + int number; +public: + static Tst_A* last; + Tst_A () {last = this;} + virtual char* a () { return "A"; } + class Tst_AA + { + public: + Tst_AA () {} + ~Tst_AA () { } + char* aa () { return "AA"; } + }; + class Tst_BB : public Tst_AA + { + public: + Tst_BB () {} + ~Tst_BB () {} + Tst_AA* Base () { return this; } + }; + + void set_number(int p_number) { number = p_number;}; + int get_number() {return number*2;}; + + virtual ~Tst_A() {}; +}; + +class Tst_B : public Tst_A +{ +public: + static Tst_B* last; + Tst_B () {last = this;} + virtual char* b () { return "B"; } + + static Tst_A* create() {return new Tst_B;}; + static void* create_void() {return new Tst_B;}; + + virtual ~Tst_B() {}; +}; + +class Tst_C : public Tst_B +{ + int i; +public: + static Tst_C* last; + Tst_C (int n) : i(n) {last = this;} + virtual ~Tst_C () { printf("deleting C: %d\n",i); } + virtual char* c () { return "C"; } +}; + +inline Tst_A::Tst_AA* Tst_create_aa () +{ + return new Tst_A::Tst_AA(); +} + +inline bool Tst_is_aa (Tst_A::Tst_AA* obj) +{ + return true; +} + +class Tst_E { + void* ptr; + +public: + enum Pete { + ONE, + TWO, + } pete; + + void get_pete(Pete p) {}; + + template <class T> + T get_t() {T a=0; return a;}; + + Tst_E& operator+(const Tst_E& rvalue) {return *this;}; + + void pars(int a=0, int b=0) {}; + void get_pointer(void* a) {}; + + Tst_A a; + + void set_ptr(void* p_ptr) { + printf("this is %p, ptr is %p\n", this, p_ptr); + ptr = p_ptr; + }; + void* get_ptr() {return ptr;}; + + Tst_E(int) {}; +}; + +class Tst_Outside { + +public: + + Tst_Outside() {}; +}; + +}; // end of namespace + + +static void outside_func(Test::Tst_Outside* p_out, lua_State* ls) { + + if (p_out) printf("method!\n"); + else printf("static!\n"); + //printf("luastate: %i\n", ls); +}; + +#endif |