c++ - MinGW 错误 : 'min' is not a member of 'std'

标签 c++ max std min

我正在尝试仅使用标准库将一些 VC++ 6 代码转换为控制台应用程序,但我从 MinGW 收到以下错误(Code::Blocks 10.05 IDE 提供的任何版本):

error: 'min' is not a member of 'std'

这与下面一行代码有关:

L.Precision=std::min(1.e-4,0.001*res);

L.Precision 是一个doubleres 是一个double。以前这一行是:

L.Precision=min(1.e-4,0.001*res);

但这给出了错误:

error: 'min' was not declared in this scope

以下是相关文件中的标题:

#include<stdio.h>
#include<math.h>
//#include<algorithm.h>
#include <malloc.h>
#include "complex.h"
#include "mesh.h"
#include "spars.h"
#include "FemmeDocCore.h"

我知道这可能与文件 windef.h 中定义的某些宏有关,但如果我对此有误,请纠正我。

我究竟能做些什么呢?我对 C++ 比较陌生,甚至不确定 windef.h 在哪里被调用,我认为这是每个 Windows 程序都需要的,并且在某个时候由 MinGW 添加。我希望最终代码是跨平台的。

最佳答案

您应该取消注释并修复 #include <algorithm> , (没有 .h)这是 std::min 的地方已声明。

这与 MinGW、GCC 或 Windows 完全无关,这是标准的 C++ 东西。如果您遇到任何其他此类错误,请在 http://en.cppreference.com/w/ 上搜索缺少的标识符.

另外:使用 <cmath><cstdio> ,并避免 malloc和 friend 们,使用new/new[]delete/delete[]相反。

关于c++ - MinGW 错误 : 'min' is not a member of 'std' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6570139/

相关文章:

c++ - 如何检查一个值是否为1.#INF0000?

c++ - 如何散列std::string?

c++ - & 运算符不产生字符地址

mysql - MAX/MIN 在 mysql 中给我错误的值

c++ - 在结束运行之前在 C++ 中获取 shell 命令输出

Javascript-如何编写一个函数来查找任何一组数字参数中的最大数字

haskell - 排序比较,但返回最小的

c++ - 如何将 std::chrono::time_point 转换为带有小数秒的日历日期时间字符串?

c++ - 对齐静态字符串文字

c++ - 不同于导出的 DLL 函数名称