小编dar*_*ts 的帖子

包含#pragma 的宏定义

我正在尝试定义以下宏:

#if defined(_MSC_VER)
    #define PRAGMA_PACK_PUSH(n)  __pragma(pack(push, n))
    #define PRAGMA_PACK_POP()    __pragma(pack(pop))
#else
    #define PRAGMA_PACK_PUSH(n)     #pragma (pack(push, n))
    #define PRAGMA_PACK_POP()       #pragma (pack(pop))
#endif
Run Code Online (Sandbox Code Playgroud)

但是我在 Linux 上收到以下错误 -

 error: '#' is not followed by a macro parameter
  #define PRAGMA_PACK_PUSH(n)  #pragma (pack(push, n))
Run Code Online (Sandbox Code Playgroud)

它指向语句中的第一个 ')'

如何定义包含# 的宏?

解决方案更新:

如本线程Pragma 在定义宏中所述,有效的语法是:

#if defined(_MSC_VER)
    #define PRAGMA_PACK_PUSH(n)  __pragma(pack(push, n))
    #define PRAGMA_PACK_POP()    __pragma(pack(pop))
#else
    #define PRAGMA_PACK_PUSH(n)     _Pragma("pack(push, n)")
    #define PRAGMA_PACK_POP()       _Pragma("pack(pop)")
#endif
Run Code Online (Sandbox Code Playgroud)

c++ macros

4
推荐指数
1
解决办法
1865
查看次数

C++什么是std :: shared_future和std :: promise

我明白什么是std :: future但是我不明白何时以及如何使用std :: shared_future和std :: promise,我在网上找不到一个好的解释.

我会很感激帮助我的头脑.

顺便说一下这里的例子并不是很清楚http://en.cppreference.com/w/cpp/thread/shared_future

c++ future c++11

4
推荐指数
1
解决办法
2207
查看次数

标签 统计

c++ ×2

c++11 ×1

future ×1

macros ×1