У меня есть следующие предупреждения при компиляции проекта openFrameworks 007 в Visual Studio 2010 SP1:
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 также определяет NOMINMAX в ofConstants.h, я получаю кучу предупреждений о том, что NOMINMAX уже определен.
Я пытался определить NOMINMAX в затронутых файлах openFrameworks, но он выдает то же предупреждение (на самом деле, если я анализирую файлы, включенные в ofColor.h и ofPixel.h, они заканчиваются включением ofConstants.h, поэтому следует определить NOMINMAX ).
Есть идеи, как это решить? Если вы не ... что будет лучше? Это предупреждения или куча предупреждений о том, что NOMINMAX уже определен?
EDIT:
Кстати, когда я говорил об ошибках, я говорил об этом: предупреждение C4003 и ошибки C2589 и C2059 о: x = std :: numeric_limits :: max ();
Я получаю это (предупреждение плюс 2 ошибки), если я пытаюсь воспроизвести проблему в чистом проекте C ++. Но в моем проекте openFrameworks я просто получаю предупреждения. Вот почему я запутался !!