【问题标题】:How to screen the tilde in preprocessor macros?如何筛选预处理器宏中的波浪号?
【发布时间】:2017-01-04 18:43:47
【问题描述】:

我尝试编写宏来定义一些类,但在这种情况下我不能编写析构函数,因为波浪号是预处理器的特殊字符。

有一个例子:

#define CLASS( cName ) \
class cName \
{ \
public: \
    cName() \
    { \
    \
    } \
    \
    ~cName() \
    { \
    \
    } \ 
};\

如何筛选波浪号?

【问题讨论】:

  • 你用的是什么编译器?您看到什么错误/警告消息?
  • @Carcigenicate 我希望能找到这种方式)
  • @owacoder C2059, MSVC++ 10
  • 感谢您提供错误编号,但您看到了什么确切的错误消息?
  • 波浪号不是预处理器的特殊字符。您的错误来自其他原因。

标签: c++ macros c-preprocessor


【解决方案1】:

这是正确的声明方式:

#define MAKECLASS(name) \
class name \
{ \
public: \
    name() {} \
    ~name() {} \
};

MAKECLASS(a)

但我应该警告您,这通常是一个坏主意,为什么您的程序设计需要这样做?如果没有,你最好不要使用它。

【讨论】:

  • 谢谢,我发现了一个问题,一行斜线后面有制表符)非常感谢!
猜你喜欢
  • 1970-01-01
  • 2013-02-03
  • 1970-01-01
  • 2013-06-11
  • 2015-11-26
  • 2011-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多