Использование NOMINMAX
- единственный не совсем злой способ включить <windows.h>
. Вы также должны определить UNICODE
и STRICT
. Хотя последний определяется по умолчанию современными реализациями.
Однако вы можете столкнуться с проблемами с заголовками Microsoft, например, для GdiPlus. Мне не известно о проблемах с заголовками каких-либо других компаний или лиц.
Если заголовок определяет пространство имен, как это делает GdiPlus, то одним из исправлений является создание оболочки для соответствующего заголовка, куда вы включаете <algorithm>
и внутри пространства имен заголовка using namespace std;
(или, альтернативно, * 1011). * и using std::max
):
#define NOMINMAX
#include <algorithm>
namespace Gdiplus
{
using std::min;
using std::max;
}
Обратите внимание, что это очень отличается от using namespace std;
в глобальной области видимости в заголовке, который никогда не должен делать .
Я надеваю & Rsquo; знают любое хорошее обходной для случая, когда нет никакого пространства имен, но, к счастью, я гавань и Rsquo;. Т запустить в это, поэтому на практике, что конкретная проблема, вероятно, спорная вопросом