包含windows.h会导致错误
Including windows.h causes an error
这很奇怪,我有一个我一直在构建的类,目前我在我的文件顶部有这个:
#pragma once
#include <cstdint>
#include <cstring>
#include <string>
#include <limits>
现在我需要将windows.h添加到混合中,但一旦我这样做,我就会在这行上得到"错误:期望一个标识符":
inline uint32_t Hash2(std::string &Key) {
return (MurMur3::x86_32(Key.c_str(), Key.size(), 2) % (std::numeric_limits<uint32_t>::max() - 1)) + 1;
}
的红线出现在::max下面。至于函数本身,它应该使用murmur3来获得一个不为0的哈希值。
如果我删除
std::numeric_limits<uint32_t>::max()
并将其替换为常量4294967295
然后它又可以正常工作了。
我不明白为什么会发生这种事。有人知道吗?Windows.h有一个在其中定义宏的坏习惯。特别地,它定义了最小和最大。你需要取消这些
相关文章:
- Windows/Cygwin - 不能使用 pybind11 - 犯错误
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- Android NDK clang 编译器错误在 Windows 上显示'No such file or directory'
- 分段 Linux Ubuntu 中的 g++ 错误,但在 Windows 中的 g++/MingW 中,在 C++ 中打
- Windows C++:文件夹移动访问被拒绝错误
- C++20 个模块在 clang (Windows):在最简单的示例中键入信息错误
- g++ 9.2.1 (Linux) 会导致 seg 错误,但 Windows 上的代码块不会
- 0xc000007b Windows 上的 OpenCL 库的加载时间错误
- Windows SAPI 错误:"GetVersionExA":已声明已弃用
- 在 Windows 10 下使用 GTest 的 CMake - 致命错误 LNK1104:无法打开文件"gtest.lib",但存在调试"gtestd.lib"
- 在 Windows 10 下为 VTK 生成 Makefile 时,Qt mkspecs 的路径错误
- C++ - 程序接收信号SIGSEGV,分段错误.In msvcrt!memcpy () (C:\Windows\S
- Windows上的Flite API错误
- 可能的 std::async 实现错误 Windows
- c ++ to_string未在此范围错误 [Windows + Devcpp 环境] 中声明
- QT 5.8 SQL连接错误:Windows 10上未加载QMYSQL驱动程序
- Button类中的错误-Windows触发了断点SDL
- 链接错误:Windows上使用MinGW的Boost库
- 异步事件:已定义链接器错误[Windows Update API]
- “__m256”的包装器产生构造函数的分段错误 - Windows 64 + MinGW + AVX 问题