I like the change.

> Leandro Fanzone <[EMAIL PROTECTED]> writes:
> > I have compiled PostgreSQL 7.1.2 with gcc 3.0.1, and have the following
> > problem: if I include first libpq++.h before iostream, id est:
> > #include <libpq++.h>
> > #include <iostream>
> > the compiler complains:
> 
> > This is because somewhere in PostgreSQL you have the following code:
> 
> > #ifndef true
> > #define true ((bool)1)
> > #endif
> 
> Yeah.  c.h has
> 
> #ifndef __cplusplus
> #ifndef bool
> typedef char bool;
> #endif         /* ndef bool */
> #endif         /* not C++ */
> 
> #ifndef true
> #define true  ((bool) 1)
> #endif
> 
> #ifndef false
> #define false ((bool) 0)
> #endif
> 
> It's been like that for quite some time, but it's always struck me as
> bizarre: if we're willing to trust a C++ compiler to provide type
> bool, why would we not trust it to provide the literals true and false
> as well?  ISTM the code should read
> 
> #ifndef __cplusplus
> 
> #ifndef bool
> typedef char bool;
> #endif
> 
> #ifndef true
> #define true  ((bool) 1)
> #endif
> 
> #ifndef false
> #define false ((bool) 0)
> #endif
> 
> #endif         /* not C++ */
> 
> Does anyone have an objection to this?
> 
>                       regards, tom lane
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]
> 

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  [EMAIL PROTECTED]               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/users-lounge/docs/faq.html

Reply via email to