【发布时间】:2011-03-03 02:05:13
【问题描述】:
有没有办法在宏中嵌入 pragma 语句和其他语句?
我正在尝试实现以下目标:
#define DEFINE_DELETE_OBJECT(type) \
void delete_ ## type_(int handle); \
void delete_ ## type(int handle); \
#pragma weak delete_ ## type_ = delete_ ## type
如果存在提升解决方案(除了 wave),我可以接受。
【问题讨论】:
-
可以说两者都不是 - #pragmas 不是由 C 或 C++ 标准定义的。
-
预处理器是,即使他想要运行的特定允许子命令不是。
-
@DeadMG:C 和 C++ 之间有很多共同点。虽然预处理大部分很常见,但根据所使用的语言标准(C89、C99、C++ 和 C++0x FCD),如何指定预处理存在重大差异。
-
@James McNellis:仅仅因为从技术上讲,大多数 C 程序都可以移植到 C++ 中,因此并没有真正实现通用功能,因为绝大多数 C++ 程序员都不会这样做。这两种语言实际上并没有太多共同点。
标签: c-preprocessor pragma stringification