[Gdal-dev] Filling a RasterBand with a constant value?

Marcus Barnes marcus at keyholecorp.com
Fri May 2 17:53:22 EDT 2003


> -----Original Message-----
> From: gdal-dev-admin at remotesensing.org 
> [mailto:gdal-dev-admin at remotesensing.org] On Behalf Of Frank Warmerdam
> Sent: Friday, May 02, 2003 12:13 PM
> To: gdal-dev at remotesensing.org
> Subject: Re: [Gdal-dev] Filling a RasterBand with a constant value?
> 
> Marcus,
> 
> I would like to add a few qualifications.
> 
>   o Adding a new non-virtual method does not have any significant
>     ramifications on backwards compatibility.  The new 
>     version of the library
>     can be used in the place of old versions without problems 
>     by C++ classes.

Yes that's true.

>   o Add a new virtual method changes the organization of the 
>     vtable (the
>     virtual method function table) for the class, and unless 
>     the new method
>     happens to be added at the end, it will break binary 
>     compatibility.  The
>     new library cannot be used in place of the old one for 
>     applications using
>     the C++ API.

Right this was the case I was really trying to express. I forgot to
mention the word "virtual" in my reply. Sorry about that.

On a more obscure note... Changes to access control is another
qualification that breaks C++ binary compatibility. For example,
changing a class member from public to protected. This is because the
compiler implementation may include the access level in the mangled name
that the linker sees. Application code that attempts to call (or
reference) the previously public (non virtual) class member should
(will) fail.

Regards.
---
Marcus Barnes mailto:marcus at keyholecorp.com 
Keyhole Inc. Mt View, CA http://www.earthviewer.com
 





More information about the Gdal-dev mailing list