From: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: C++ Headers |
Date: | 2001-05-22 21:52:20 |
Message-ID: | 200105222152.f4MLqKW19017@candle.pha.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
> On Tue, May 22, 2001 at 12:19:41AM -0400, Bruce Momjian wrote:
> > > 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)
> >
> > We have added more const-ness to libpq++ for 7.2.
>
> Breaking link compatibility without bumping the major version number
> on the library seems to me serious no-no.
>
> To const-ify member functions without breaking link compatibility,
> you have to add another, overloaded member that is const, and turn
> the non-const function into a wrapper. For example:
>
> void Foo::bar() { ... } // existing interface
>
> becomes
>
> void Foo::bar() { ((const Foo*)this)->bar(); }
> void Foo::bar() const { ... }
Thanks. That was my problem, not knowing when I break link compatiblity
in C++. Major updated.
--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026
From | Date | Subject | |
---|---|---|---|
Next Message | Thomas Lockhart | 2001-05-22 23:18:48 | Re: JDBC commit to 7.1.2 |
Previous Message | Bruce Momjian | 2001-05-22 21:48:37 | Re: [HACKERS] Re: JDBC commit to 7.1.2 |