Ошибка MinGW: min не является членом std

Я пытаюсь преобразовать некоторый код 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 - это double , а res - это 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. Я хочу, чтобы окончательный код был кроссплатформенным.

10
задан rubenvb 14 November 2014 в 21:24
поделиться