diff --git a/indra/llcommon/llapr.h b/indra/llcommon/llapr.h index 3f846f13145034e0d26c33b5f50a09064ddff737..286fc43a77fbb77a9c7f8ed2d453d256419aba70 100644 --- a/indra/llcommon/llapr.h +++ b/indra/llcommon/llapr.h @@ -37,6 +37,9 @@ // If you get undefined symbols, find the appropriate // Windows header file and include that in your .cpp file. #define WIN32_LEAN_AND_MEAN + // do not define min() and max() macros, which collide with + // things like numeric_limits<T> + #define NOMINMAX #include <winsock2.h> #include <windows.h> #endif diff --git a/indra/llcommon/llprocesslauncher.h b/indra/llcommon/llprocesslauncher.h index 954c2491472eb2e17b11122fe7d95eeb53348fff..23e48b1823ee87c96cc108a75fa25a80b9f8790c 100644 --- a/indra/llcommon/llprocesslauncher.h +++ b/indra/llcommon/llprocesslauncher.h @@ -28,6 +28,7 @@ #define LL_LLPROCESSLAUNCHER_H #if LL_WINDOWS +#define NOMINMAX #include <windows.h> #endif diff --git a/indra/llrender/llglheaders.h b/indra/llrender/llglheaders.h index 851a75629e184e60767390c843360156d7d8515a..b936fd30f8494a3b9701aa6fc939b948c4a93318 100644 --- a/indra/llrender/llglheaders.h +++ b/indra/llrender/llglheaders.h @@ -520,6 +520,7 @@ extern PFNGLSAMPLEMASKIPROC glSampleMaski; // windows gl headers depend on things like APIENTRY, so include windows. #define WIN32_LEAN_AND_MEAN +#define NOMINMAX #include <winsock2.h> #include <windows.h> diff --git a/indra/llui/llui.h b/indra/llui/llui.h index 8cec1a16f406170e4a176f06b474552e888fac5e..af8f23965760f42b6b6eb11bc56011440c99fd1c 100644 --- a/indra/llui/llui.h +++ b/indra/llui/llui.h @@ -41,6 +41,7 @@ #include <boost/signals2.hpp> #include "lllazyvalue.h" #include "llframetimer.h" +#include <limits> // LLUIFactory #include "llsd.h" @@ -150,27 +151,25 @@ class LLUI // // Classes // + template <typename T> + struct RangeParams : public LLInitParam::Block<RangeParams<T> > + { + Optional<T> minimum, + maximum; + + RangeParams() + : minimum("min", T()), + maximum("max", std::numeric_limits<T>::max()) + {} + }; template <typename T> struct Range { typedef Range<T> self_t; - struct Params : public LLInitParam::Block<Params> - { - typename Optional<T> minimum, - maximum; - - Params() - : minimum("min", 0), - maximum("max", S32_MAX) - { - - } - }; - // correct for inverted params - Range(const Params& p = Params()) + Range(const RangeParams<T>& p = RangeParams<T>()) : mMin(p.minimum), mMax(p.maximum) { @@ -228,12 +227,12 @@ class LLUI { typedef Range<T> range_t; - struct Params : public LLInitParam::Block<Params, typename range_t::Params> + struct Params : public LLInitParam::Block<Params, RangeParams<T> > { - Mandatory<S32> value; + Mandatory<T> value; Params() - : value("", 0) + : value("", T()) { addSynonym(value, "value"); } diff --git a/indra/llwindow/lldragdropwin32.h b/indra/llwindow/lldragdropwin32.h index 929e7f9e377f3a0d480e3b55047bb9fb35b193d0..63054bffec3998e6f7fe066f53ba2bfa2cf097cd 100644 --- a/indra/llwindow/lldragdropwin32.h +++ b/indra/llwindow/lldragdropwin32.h @@ -31,6 +31,7 @@ #ifndef LL_LLDRAGDROP32_H #define LL_LLDRAGDROP32_H +#define NOMINMAX #include <windows.h> #include <ole2.h> @@ -54,6 +55,7 @@ class LLDragDropWin32 #ifndef LL_LLDRAGDROP32_H #define LL_LLDRAGDROP32_H +#define NOMINMAX #include <windows.h> #include <ole2.h> diff --git a/indra/llwindow/llwindowwin32.h b/indra/llwindow/llwindowwin32.h index 387e4cbdb65a8767ecf8ddf220b4438669ff6111..dc1950fb315f8a081c78eea312a86386ee66b10b 100644 --- a/indra/llwindow/llwindowwin32.h +++ b/indra/llwindow/llwindowwin32.h @@ -29,6 +29,7 @@ // Limit Windows API to small and manageable set. #define WIN32_LEAN_AND_MEAN +#define NOMINMAX #include <winsock2.h> #include <windows.h> diff --git a/indra/win_crash_logger/StdAfx.h b/indra/win_crash_logger/StdAfx.h index ce70fe2994c5077cfa10acd4f2e489a309d99c55..71faf88bad8121bb48c868324cd0ad57c92dfa1a 100644 --- a/indra/win_crash_logger/StdAfx.h +++ b/indra/win_crash_logger/StdAfx.h @@ -37,7 +37,7 @@ #endif // _MSC_VER > 1000 #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers - +#define NOMINMAX // don't define min and max macros // Windows Header Files: #include <windows.h>