【问题标题】:Can I escape (suppress) C preprocessor macro expansion [duplicate]我可以逃避(抑制)C预处理器宏扩展吗?
【发布时间】:2018-12-27 11:01:13
【问题描述】:

我使用了以下代码:

auto t = numeric_limits<decltype(m)>::max() - 1;

后来,我需要#include &lt;Windows.h&gt;,它有#define max(a, b)指令,所以我不能使用::max()方法。 在不使用#undef max 的情况下调用::max() 时有没有办法抑制宏扩展?

【问题讨论】:

    标签: c++ preprocessor


    【解决方案1】:

    在编译器选项中或在包含 windows.h 之前定义 NOMINMAX

    #define NOMINMAX
    #include <windows.h>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-04
      • 1970-01-01
      • 2021-02-04
      • 2020-10-18
      • 1970-01-01
      • 1970-01-01
      • 2019-07-21
      相关资源
      最近更新 更多