비주얼 스튜디오에 오픈 프레임 웍스 007 프로젝트를 컴파일하는 동안 나는 다음과 같은 경고가 2010 SP1 :이 말할 수있는 건경고 C4003 : 매크로 '최대'의 실제 매개 변수가 부족 - 비주얼 스튜디오 2010 C++
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을 설정하려고하지만, 오픈 프레임 웍스는 ofConstants.h에 NOMINMAX을 정의하기 때문에 나는 NOMINMAX가 이미 정의되어 경고의 무리를 얻을 : 영향을받는 코드는 다음과 같습니다.
영향을받는 openFrameworks 파일에서 NOMINMAX를 정의하려고했지만 동일한 경고가 나타납니다. 사실 ofColor.h 및 ofPixel.h에 포함 된 파일을 분석하면 결과가 ofConstants.h를 포함하므로 결국 NOMINMAX가 있어야합니다. 한정된).
이 문제를 해결하는 방법에 대한 아이디어가 있습니까? 네가하지 않으면 ... 무엇이 최선 일까? NOMINMAX가 이미 정의 된이 경고 또는 경고의 무리? 내가이 얘기 한 오류에 대해 이야기 할 때
은 BTW :
편집 warning C4003 and errors C2589 and C2059 on: x = std::numeric_limits<int>::max();
나는 깨끗한 C++ 프로젝트에 문제를 재현하려고하면 나는이 (경고 플러스 2 오류)를 얻는다. 그러나 openFrameworks 프로젝트에서 나는 경고 만받습니다. 그것이 내가 혼란스러워하는 이유입니다 !!
먼저 #ifdef max를 잊지 마십시오. – Puppy
@DeadMG 왜? 좋은 스타일일까요? IdeOne에서 시도해 보았지만 경고 나 오류가 발생하지 않았습니다. –
문제는 해당 파일이 내 코드가 아님입니다. 그것은 openFrameworks의 코드이고 라이브러리가 업데이트되면 나중에 라이브러리 소스 코드를 변경하는 것이 PITA 일 수 있습니다. – petersaints