首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用QPP实现Qore函数的参数属性定义

用QPP实现Qore函数的参数属性定义
EN

Stack Overflow用户
提问于 2017-04-23 20:23:37
回答 1查看 23关注 0票数 2

我想为( ___attribute__脚本)函数定义一个CPP .qpp,用.qpp实现并预处理成普通.cpp_。可以从C++端调用Qore脚本类方法。在这种情况下,QPP类定义中实现了一个空函数,并在.cpp文件中进行了预处理。C++编译器将在编译期间引发警告消息。解决方案是GNU属性unused。是否可以在.qpp中定义参数属性?

代码语言:javascript
复制
MyClass::onAction(int arg0, reference arg1) {
}

在cpp中扩大为:

代码语言:javascript
复制
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++用法。

由于也有自动展开的参数,似乎函数标志将被实现。

EN

回答 1

Stack Overflow用户

发布于 2017-04-24 04:43:18

我认为这已经实现了;查看一下[doc]qpp.cpp中的实现;如果您将qpp文件中的参数变量声明为[doc],这意味着不会为该变量生成C++胶,而参数变量仅用于文档。

QC_StreamWriter.qpp中的示例:

代码语言:javascript
复制
nothing StreamWriter::printf(string[doc] fmt, ...) {
   sw->f_printf(args, xsink);
}

这将生成以下C++代码:

代码语言:javascript
复制
// 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();
}

我希望这能帮到你!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43576085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档