Boost logo

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;
     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

Boost list run by bdawes at, gregod at, cpdaniel at, john at