Lua encapsulation class
Lua encapsulation class
我实际上试图在C++
中创建一个类来封装Lua
调用,实际上试图封装一个函数以在构造函数上加载Lua
脚本,但主要问题是当我尝试对Lua脚本进行函数调用时,我找不到如何存储多个返回值以及如何正确推送所有参数。
我试图找到一个函数的实现的想法,该函数使用任意数量的任何类型的参数调用lua fonction,(该函数将推送参数并调用函数,但我不希望动态强制转换例如知道我是否必须"lua_pushnumber"或例如推送字符串。
您可以尝试在构造函数中接受某种类型的变体类的数组,并使用它们的类型来确定如何将它们泵入 Lua。 另一方面,C/C++ 和 Lua 之间实际上只有两种类型可以互换:字符串和数字/双精度。 一个可能的解决方案是传入一个字符串数组(或者一个字符**和一个整数,如果你愿意的话(,把你的双精度作为字符串传递。
然后,您可以通过在字符串"return"之后附加字符串或双精度的字符串表示来执行loadstring((调用。 当你执行由 loadstring(( 推送到堆栈的函数时,lua 引擎会将你的变量(具有适当类型的字符串或双精度(推送到 lua 堆栈。 你会有字符串解析你的替身的开销,但如果你渴望速度,我敢打赌你无论如何都会纯粹用C++编码:) 这种方法的优点是你实际上也可以这样传入一个函数:(即"return function(( print("hello"(;完"(
相关文章:
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- 使用模板进行堆栈实现; "name followed by :: must be a class or namespace"
- "Undefined class"作为is_base_of的论据
- 如何将class.cpp和class.hpp编译为一个.o文件
- '{'标记之前的预期类名,然后在预声明时无效使用不完整的类型'class class_name'
- 如何使用"derived input class"创建派生类?
- 错误:"Left of getValue must have class/struct/union"
- ' class a : b ' 和 ' class a : public b ' 之间的继承类不同
- Pybind11 Class Definition
- 在C++中使用没有合作伙伴Class/Cpp文件的头文件是否实用
- C2011 'CMemDC':Visual Studio 2019中的'class'类型重新定义
- TypeError: [c++ addon class] 不是构造函数
- C++ class template
- 当初始值设定项是基类名时'initializer does not name a non-static data member or base class'错误
- Clearing Class Foo with new(pFoo) Foo()
- C++ class vs a library
- 继承类时"invalid use of incomplete type ‘class tree_node_t’"
- 使用"class"关键字,后跟未声明的标识符
- Lua encapsulation class