Re: C++ Headers

Поиск
Список
Период
Сортировка
От Christof Petig
Тема Re: C++ Headers
Дата
Msg-id 3B08D94D.AE828050@petig-baender.de
обсуждение исходный текст
Ответ на Re: C++ Headers  (Bruce Momjian <pgman@candle.pha.pa.us>)
Ответы Re: C++ Headers  (Bruce Momjian <pgman@candle.pha.pa.us>)
Список pgsql-hackers
Tom Lane wrote:

> Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > The only mention I see of this is in c.h:
>
> >       #ifndef __cplusplus
> >       #ifndef bool
> >       typedef char bool;
>
> >       #endif   /* ndef bool */
> >       #endif   /* not C++ */
>
> > If you need more cplusplus stuff, lets figure it out and add it.
>
> Actually, that portion of c.h is a time bomb that is likely to blow up
> in the face of some poor C++ user.  There's no guarantee that a C++
> compiler's built-in bool type will be compatible with "char", is there?
> If it happened to be, say, same size as "int", then a C++ module
> would interpret lots of things differently from a C module.

This in fact has happened within ECPG. But since sizeof(bool) is passed to
libecpg it was possible to figure out which 'bool' is requested.

Another issue of C++ compatibility would be cleaning up the usage of
'const' declarations. C++ is really strict about 'const'ness. But I don't
know whether postgres' internal headers would need such a cleanup. (I
suspect that in ecpg there is an oddity left with respect to host variable
declaration. I'll check that later)
   Christof




В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Plans for solving the VACUUM problem
Следующее
От: Patrick Welche
Дата:
Сообщение: Re: cvs snapshot compile problems