【问题标题】:How to get string for current namespace in Macro如何在宏中获取当前命名空间的字符串
【发布时间】:2014-02-14 09:59:32
【问题描述】:

我需要将命名空间前缀放在宏中。即

#define MYMACRO(x) ....##x

namespace A {
  namespace B {
    MYMACRO(C);
  }
}

并且 MYMACRO 必须返回 - A::B::C?

【问题讨论】:

标签: c++ namespaces macros c-preprocessor


【解决方案1】:

无法工作。命名空间由编译器识别,编译器只在预处理器之后运行。

【讨论】:

  • 这是正确的答案。它可能会导致解决方案:如果您需要预处理器看到某些内容,请将其放在那里。在命名空间A之前,放一个#define OUTERNAMESPACE A,在B之前定义INNERNAMESPACE B。我不知道这会比手动编写更好。
  • @starmole: 嗯,应该叫“手动写两次”:)
猜你喜欢
  • 2018-02-13
  • 1970-01-01
  • 2012-06-03
  • 2012-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多