Uwe Stöhr wrote:
Andre Poenitz schrieb:

Windows?

Try  #undef max  after the last #include in that file.

This doesn't help, but I found now the problem:

You added in r21492 this code to FileName.cpp:

#if defined (BOOST_WINDOWS)
# define WIN32_LEAN_AND_MEAN
# include <windows.h>
#endif

But this redefines the max command:

The Standard Library defines the two template functions std::min() and std::max() in the <algorithm> header. In general, you should use these template functions for calculating the min and max values of a pair. Unfortunately, Visual C++ does not define these function templates. This is because the names min and max clash with the traditional min and max macros defined in <windows.h>. As a workaround, Visual C++ defines two alternative templates with identical functionality called _cpp_min() and _cpp_max(). You can use them instead of std::min() and std::max().To disable the generation of the min and max macros in Visual C++, #define NOMINMAX before #including <windows.h>.
(from http://www.devx.com/tips/Tip/14540)

When I change it to:

#if defined (BOOST_WINDOWS)
# define WIN32_LEAN_AND_MEAN
# define NOMINMAX
# include <windows.h>
#endif

I can compile it. OK to commit this?

No, scons should be corrected to pass -DNOMINMAX instead. I think Scons already does that for src/ so it should be easy to do the same for src/support/.

Abdel.

Reply via email to