macros

    3热度

    1回答

    我有一些代码应该是一个线程安全的Python/C++ API。我正在使用宏Py_BEGIN_ALLOW_THREADS和Py_END_ALLOW_THREADS,它们展开以创建保存线程状态并创建一个锁。我在方法退出之前释放锁;一旦在if语句范围内,并且一次在方法范围内。 为什么不能编译?它会在第二个Py_END_ALLOW_THREADS宏处生成错误:error: _save was not de

    1热度

    1回答

    说我有这样一个宏: (define-syntax (choose stx) (define data (syntax->datum stx)) (define args (cadr data)) (define body (cddr data)) (define output `(apply (case (car ,args) ,(

    0热度

    1回答

    最近,我在一个项目中工作,该项目有很多使用宏生成的代码。我遇到过这种情况,生成的代码非常少。但是在这个当前的代码中,有很多正在使用#define生成的代码。 示例,类似于事件生成和处理以及为类生成类Id的类。 #define INIT_EVENT_INFO(eventType) \ template <> const GenericClassID eventType::tClassID(

    0热度

    2回答

    我正在使用外部库从一个模板构建的数据存储对象编写二进制数据。这是一个普遍的问题,所以我不会在这里提到图书馆。这些模板是明确实例化的,因此它们只能是float或double类型。我用我自己的方法将调用包装到库编写器中,这需要决定从库编写器请求什么精度。这当然取决于正在使用的类的哪个版本。我不能使用条件是这样的: typedef std::conditional<std::is_same<T, flo

    1热度

    1回答

    WriterDemo example使用VB.NET与UNO API进行交互。 (也包括与SDK下载在file:///C:/Program Files/LibreOffice 5/sdk/examples/CLI/VB.NET/WriterDemo/中的文件。) 要构建并运行,我设置的命令行环境根据https://api.libreoffice.org/docs/install.html,然后使用

    0热度

    3回答

    我试图创建一个查找宏。使用三元运算符似乎是一个非常简洁的方法。这是我到目前为止有: #define SQL_LOOKUP_TABLE(x) (strncmp(x, "int", strlen(x)) == 0) ? "INTEGER" : SQL_LOOKUP_TABLE1(x) #define SQL_LOOKUP_TABLE1(x) (strncmp(x, "char", strlen(x)

    1热度

    3回答

    在这段代码中,作者通过使用宏为COUNTER类的所有成员创建增量函数来做一些巧妙的事情。 class COUNTER { public: UINT64 _call; UINT64 _call_indirect; UINT64 _return; UINT64 _syscall; UINT64 _branch; UIN

    0热度

    1回答

    您好我已经创建了一个Flask管理界面。在其中一个字段(列)中,我想包含一个超链接。 class workout(db.Model): equipment = db.Column(db.String(100)) place = db.Column(db.String(100)) image = db.Column(db.Text) 或模板使用的Jinja2宏: 我

    2热度

    1回答

    我知道#error指令工作至少有GCC和MSVC #if !defined(__cplusplus) #error C++ compiler required. #endif 但它是在一般的跨平台和交叉编译器?它可能是某个标准的一部分吗? PS。因为即使查看GCC和MSVC手册中给出的示例,也可以看到不同之处。虽然它可以用引号或不用引号,但它让人感到难过,它可能是某种编译器的依赖。 GCC

    1热度

    2回答

    我很难理解C预处理器在以下上下文中如何应用重写规则。我有以下宏: #define _A(x) "A" _##x #define _B(x) "B" _##x #define X(x) _##x 的想法是,这些宏使用的连接来创建一个新的表达,其本身可以是一个宏观 - 如果一个宏,我想这将扩大:现在 ,下面的扩展,就像我期望: X(x) expands to _x X(A(x)) expa