|
Boost : |
From: Eric Niebler (eric_at_[hidden])
Date: 2004-02-29 19:41:39
Daryle Walker wrote:
> 1. The MS Windows headers define "min" and "max" macros
> 2. But nothing in those headers _actually needs_ those macros
Try this with VC7.1:
#define NOMINMAX
#include <afxtempl.h>
int main()
{
CArray<int> array;
array.SetSize(3);
return 0;
}
f:\Program Files\Microsoft Visual Studio .NET
2003\Vc7\atlmfc\include\afxtempl.h(398): error C3861: 'max': identifier
not found, even with argument-dependent lookup
Regretably, there *is* code out there that require the min/max macros,
even platform headers.
> So why can't we add:
>
> #if defined(min) || defined(max)
> #error Define NOMINMAX and use the alternates in <algorithm>
> #endif
>
Because this will break people's code in a way they can't easily fix.
Nor should they have to.
-- Eric Niebler Boost Consulting www.boost-consulting.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk