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