Including <thread> results in the following compile error: 'fabsl': is not a member of '`global namespace'

Including <thread> results in the following compile error: 'fabsl': is not a member of '`global namespace'

很长一段时间以来,标准库让我头疼的是仅仅通过包含它们就抛出编译错误。长期以来,我通过重新实现我需要的部分,或者为 cstdio 使用一些#define 来绕过它。

现在我需要包含该库,但我真的看不出有任何解决方法。再一次,我也看不到这样做的办法——有什么处理这个问题的线索吗?我尝试了以下方法:

#ifndef _CRT_FUNCTIONS_REQUIRED
#define _CRT_FUNCTIONS_REQUIRED 1
#endif // !_CRT_FUNCTIONS_REQUIRED
#include <thread>

还有一些这样的变化,但无济于事。

编辑 - 修正: 我创建了一个“Math.h”header,打破了任何依赖于标准 C++ 库“math.h”的 header。重命名 header(及其引用)后编译的代码。

我创建了一个 Math.h 头文件。重命名它解决了问题。

避免使用 C++ 标准库中的文件名似乎是个好主意,谁会这么说呢。