Re: C++ Headers - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: C++ Headers
Date
Msg-id 200105231535.f4NFZVN08207@candle.pha.pa.us
Whole thread Raw
In response to Re: C++ Headers  (ncm@zembu.com (Nathan Myers))
List pgsql-hackers
> > > > 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.
> 
> Wouldn't it be better to add the forwarding function and keep
> the same major number?  It's quite disruptive to change the
> major number for what are really very minor changes.  Otherwise
> you accumulate lots of near-copies of almost-identical libraries
> to be able to run old binaries.
> 
> A major-number bump should usually be something planned for
> and scheduled.

That const was just one of many const's added, and I am sure there will
be more stuff happening to C++.  I changed a function returning short
for tuple length to int.  Not worth mucking it up.

If it was just that one it would be OK.

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: SEP_CHAR
Next
From: Tom Lane
Date:
Subject: Re: Not released yet, but could someone take a quick peak ...