/
niceSOFT
/
swig
Обзор
Документация
Войти
/
niceSOFT
/
swig
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Examples/test-suite/lua/cpp11_variadic_templates_runme.lua
128 строк
3 KB
Erez Geva
More Lua tests (#3405)
31 май 2026, 17:09
31 май 2026, 17:09
a1b3ca8
Код
Авторство
О чём код?
local v=require("cpp11_variadic_templates") local ma = v.MultiArgs1() -- SizeOf testing assert(v.SizeOf0.size == 0, "v.SizeOf0.size") assert(v.SizeOf1.size == 1, "v.SizeOf1.size") assert(v.SizeOf2.size == 2, "v.SizeOf2.size") assert(v.SizeOf3.size == 3, "v.SizeOf3.size") local a = v.A() local b = v.B() local c = v.C() local d = v.D() -- MultiInherit0 local mi0 = v.MultiInherit0() mi0:MultiInstanceMethod() v.MultiInherit0.MultiStaticMethod() mi0:InstanceMethod() v.MultiInherit0.StaticMethod() -- MultiInherit1 local mi1 = v.MultiInherit1(a) assert(mi1.a == 100, "mi1.a") mi1:MultiInstanceMethod(a) v.MultiInherit1.MultiStaticMethod(a) mi1:InstanceMethod() v.MultiInherit1.StaticMethod() -- MultiInherit2 local mi2 = v.MultiInherit2(a, b) assert(mi2.a == 100, "mi2.a") assert(mi2.b == 200, "mi2.b") mi2:MultiInstanceMethod(a, b) v.MultiInherit2.MultiStaticMethod(a, b) mi2:InstanceMethod() v.MultiInherit2.StaticMethod() -- MultiInherit3 local mi3 = v.MultiInherit3(a, b, c) assert(mi3.a == 100, "mi3.a") assert(mi3.b == 200, "mi3.b") assert(mi3.c == 300, "mi3.c") mi3:MultiInstanceMethod(a, b, c) v.MultiInherit3.MultiStaticMethod(a, b, c) mi3:InstanceMethod() v.MultiInherit3.StaticMethod() -- NumerousInherit0 local num = 123 local ni0 = v.NumerousInherit0(num) ni0:NumerousInstanceMethod(num) v.NumerousInherit0.NumerousStaticMethod(num) ni0:InstanceMethod() v.NumerousInherit0.StaticMethod() -- NumerousInherit1 local nil0 = v.NumerousInherit1(num, a) assert(nil0.a == 100, "nil0.a") nil0:NumerousInstanceMethod(num, a) v.NumerousInherit1.NumerousStaticMethod(num, a) nil0:InstanceMethod() v.NumerousInherit1.StaticMethod() -- NumerousInherit2 local ni2 = v.NumerousInherit2(num, a, b) assert(ni2.a == 100, "ni2.a") assert(ni2.b == 200, "ni2.b") ni2:NumerousInstanceMethod(num, a, b) v.NumerousInherit2.NumerousStaticMethod(num, a, b) ni2:InstanceMethod() v.NumerousInherit2.StaticMethod() -- NumerousInherit3 local ni3 = v.NumerousInherit3(num, a, b, c) assert(ni3.a == 100, "ni3.a") assert(ni3.b == 200, "ni3.b") assert(ni3.c == 300, "ni3.c") ni3:NumerousInstanceMethod(num, a, b, c) v.NumerousInherit3.NumerousStaticMethod(num, a, b, c) ni3:InstanceMethod() v.NumerousInherit3.StaticMethod() -- LotsInherit1 local lots1 = v.LotsInherit1(a) assert(lots1.a == 100, "lots1.a") lots1:LotsInstanceMethod(a) v.LotsInherit1.LotsStaticMethod(a) lots1:InstanceMethod() v.LotsInherit1.StaticMethod() -- LotsInherit2 local lots2 = v.LotsInherit2(a, b) assert(lots2.a == 100, "lots2.a") assert(lots2.b == 200, "lots2.b") lots2:LotsInstanceMethod(a, b) v.LotsInherit2.LotsStaticMethod(a, b) lots2:InstanceMethod() v.LotsInherit2.StaticMethod() -- LotsInherit3 local lots3 = v.LotsInherit3(a, b, c) assert(lots3.a == 100, "lots3.a") assert(lots3.b == 200, "lots3.b") assert(lots3.c == 300, "lots3.c") lots3:LotsInstanceMethod(a, b, c) v.LotsInherit3.LotsStaticMethod(a, b, c) lots3:InstanceMethod() v.LotsInherit3.StaticMethod() -- LotsInherit4 local lots4 = v.LotsInherit4(a, b, c, d) assert(lots4.a == 100, "lots4.a") assert(lots4.b == 200, "lots4.b") assert(lots4.c == 300, "lots4.c") assert(lots4.d == 400, "lots4.c") lots4:LotsInstanceMethod(a, b, c, d) v.LotsInherit4.LotsStaticMethod(a, b, c, d) lots4:InstanceMethod() v.LotsInherit4.StaticMethod() -- PlainStruct local ps = v.PlainStruct() ps:PlainStructParms0() ps:PlainStructParms1(a) ps:PlainStructParms2(a, b) ps:PlainStructParms3(a, b, c)