13

標準ライブラリのみを使用して一部の 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によってある時点で追加されると思います. 最終的なコードをクロスプラットフォームにしたい。

4

1 に答える 1

25

宣言され#include <algorithm>ている場所である(.hなしで)コメントを外して修正する必要があります。std::min

これは、MinGW、GCC、またはWindowsとはまったく関係がなく、標準のC++のものです。このような他のエラーが発生した場合は、http://en.cppreference.com/w/で欠落している識別子を検索してください。

また、とを使用<cmath>し、と友達<cstdio>を避け、代わりに/と/を使用します。mallocnewnew[]deletedelete[]

于 2011-07-04T10:22:04.417 に答える