Я пытаюсь преобразовать некоторый код VС++ 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
, но исправьте меня, если я ошибаюсь в этом.
Что именно я могу сделать по этому поводу? Я относительно новичок в С++, и даже не уверен, где вызывается windef.h
, я предполагаю, что это просто необходимо для каждой программы Windows и в какой-то момент добавляется MinGW. Я хочу, чтобы конечный код был кросс-платформенным.