This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]