我想为( ___attribute__脚本)函数定义一个CPP .qpp,用.qpp实现并预处理成普通.cpp_。可以从C++端调用Qore脚本类方法。在这种情况下,QPP类定义中实现了一个空函数,并在.cpp文件中进行了预处理。C++编译器将在编译期间引发警告消息。解决方案是GNU属性unused。是否可以在.qpp中定义参数属性?
MyClass::onAction(int arg0, reference arg1) {
}在cpp中扩大为:
static QoreValue MyClass_onAction_HashBGD(QoreObject* self, MyClassObject *o, const QoreValueList* args, q_rt_flags_t rtflags, ExceptionSink* xsink) 注意: ScopeGuard.h包含#define UNUSED_VARIABLE __attribute__((unused)),但是qpp语法不支持作为参数前缀的“正常”C++用法。
由于也有自动展开的参数,似乎函数标志将被实现。
发布于 2017-04-24 04:43:18
我认为这已经实现了;查看一下[doc]在qpp.cpp中的实现;如果您将qpp文件中的参数变量声明为[doc],这意味着不会为该变量生成C++胶,而参数变量仅用于文档。
QC_StreamWriter.qpp中的示例:
nothing StreamWriter::printf(string[doc] fmt, ...) {
sw->f_printf(args, xsink);
}这将生成以下C++代码:
// nothing StreamWriter::printf(string fmt, ...){}
static QoreValue StreamWriter_printf_VsVV(QoreObject* self, StreamWriter* sw, const QoreValueList* args, q_rt_flags_t rtflags, ExceptionSink* xsink) {
# 146 "QC_StreamWriter.qpp"
sw->printf(args, xsink);
return QoreValue();
}我希望这能帮到你!
https://stackoverflow.com/questions/43576085
复制相似问题