Visual Studio 2010SP1でopenFrameworks007プロジェクトをコンパイルしているときに、次の警告が表示されます。
d:\pedro\development\videoflow\openframeworks\libs\openframeworks\types\ofcolor.h(127): warning C4003: not enough actual parameters for macro 'max'
d:\pedro\development\videoflow\openframeworks\libs\openframeworks\types\ofcolor.h(128): warning C4003: not enough actual parameters for macro 'max'
d:\pedro\development\videoflow\openframeworks\libs\openframeworks\graphics\ofpixels.h(150): warning C4003: not enough actual parameters for macro 'max'
d:\pedro\development\videoflow\openframeworks\libs\openframeworks\graphics\ofpixels.h(151): warning C4003: not enough actual parameters for macro 'max'
私が知る限り、この警告の後には通常エラーが続きますが、私の場合はすべて問題なく動作します。影響を受けるコードは次のとおりです。
const float srcMax = ( (sizeof(SrcType) == sizeof(float) ) ? 1.f : numeric_limits<SrcType>::max() );
const float dstMax = ( (sizeof(PixelType) == sizeof(float) ) ? 1.f : numeric_limits<PixelType>::max() );
プリプロセッサでNOMINMAXを設定しようとしましたが、openFrameworksはofConstants.hでもNOMINMAXを定義しているため、NOMINMAXがすでに定義されているという警告がたくさん表示されます。
影響を受けるopenFrameworksファイルでNOMINMAXを定義しようとしましたが、同じ警告が表示されます(実際、ofColor.hとofPixel.hに含まれるファイルを分析すると、ofConstants.hが含まれるため、NOMINMAXを定義する必要があります)。
これを解決する方法について何かアイデアはありますか?そうでない場合...何が最善でしょうか?この警告またはNOMINMAXがすでに定義されている一連の警告?
編集:
ところで、私がエラーについて話していたとき、私はこれらについて話していました:警告C4003とエラーC2589とC2059 on:x = std :: neuro_limits <int> :: max();
クリーンなC++プロジェクトで問題を再現しようとすると、これ(警告と2つのエラー)が発生します。しかし、私のopenFrameworksプロジェクトでは、警告が表示されます。だから戸惑う!!