This is the mail archive of the
cygwin
mailing list for the Cygwin project.
RE: Strange behaviour with g++ 3.4.4-1
On Mon, 26 Sep 2005 21:41:29 GMT, Angelo Graziosi wrote:
>
>
> Dave Korn wrote:
>
>
>> You can fix it like this:
>>
>> dk@mace /test/cplus> g++ test.fixed.cpp -o test
>> dk@mace /test/cplus> diff -pu test.cpp test.fixed.cpp
>> --- test.cpp 2005-09-26 10:52:37.405042000 +0100
>> +++ test.fixed.cpp 2005-09-26 10:52:26.555119000 +0100
>> @@ -1,6 +1,8 @@
>>
>> #include <iostream>
>> #include <windows.h>
>> +#undef max
>> +#undef min
>> #include <complex>
>
>
> Thanks, Dave, for the patch.
>
> I would know if there is some bug somewhere: it sounds strange that moving
> the header 'windows.h' at the beginning or at the end of includes
> sequence, the build works fine.
The problem is that "windows.h" includes "windef.h" which defines the
standard macros min() and max() without checking if they are already
defined. You can prevent this behaviour by doing:
//....
#define NOMINMAX
#include "windows.h"
//....
This will prevent the macros from being (illegally) defined twice with
differing contents.
AndyM
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/