c++ 如何修复windows. h宏覆盖数值的问题?[duplicate]

z3yyvxxp  于 2023-01-28  发布在  Windows
关注(0)|答案(2)|浏览(161)
    • 此问题在此处已有答案**:

#define NOMINMAX using std::min/max(5个答案)
4天前关闭.

if (timeoutMs >= std::numeric_limits<int>::max())
        intTimeoutMs = std::numeric_limits<int>::max();

在这段代码中,有一个覆盖问题,我使用了define NOMINMAX,但是它对处理这个问题没有帮助。
错误:C2062:意外的类型"未知类型"
我使用了MVSC2017和2019的编译器。我使用了定义NO_MIN_MAX和NOMINMAX。
还将代码放在附加括号中

if (timeoutMs >= (std::numeric_limits<int>::max()))
        intTimeoutMs = (std::numeric_limits<int>::max());
t5fffqht

t5fffqht1#

像往常一样,当我写一个问题时,我找到了答案。我们可以彻底地禁用这些宏,但我们需要记住,我们需要确保我们将不需要它们
#undef min #undef max
或者使用来自chromium Source的代码

tkclm6bt

tkclm6bt2#

如果宏名称后面跟(,则会将其解释为类似函数的宏。可以通过将宏名称括在括号中来阻止类似函数的宏展开:(max)().

相关问题