我正在尝试通过 Angelscript 获得更动态的工作流程,我不依赖 asMETHOD 宏将类/方法信息传递给 Angelscript。
但是,到目前为止,我无法让它工作。
这是我定义的一些结构(用于设置类和方法数据):
struct Class {
std::string name;
std::string factorySignature;
void* pointer;
void* factoryPointer;
void* addRefMethodPointer;
void* releaseRefMethodPointer;
};
struct Method {
std::string name;
std::string signature;
void* pointer;
};
稍后,我尝试asSMethodPtr
使用我之前创建的 Class 结构对象来创建一个结构对象。这就是我所做的:
auto methodPtr = asSMethodPtr<sizeof(void (classObject.pointer)())>::Convert((void (classObject.pointer)())(classObject.addRefMethodPointer));
不幸的是,这会导致以下错误:
src/common/as_wrapper/AngelScript.cpp:98:66: error: void value not ignored as it ought to be
src/common/as_wrapper/AngelScript.cpp:98:68: error: template argument 1 is invalid
src/common/as_wrapper/AngelScript.cpp:98:107: error: void value not ignored as it ought to be
src/common/as_wrapper/AngelScript.cpp:98:142: error: unable to deduce ‘auto’ from ‘<expression error>’
有人有想法么?我担心这个 asSMethodPtr 结构正在推动我的 C++ 能力的极限......