This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
Arnaud, > I have another patch for the C++ APIs. I sent it a while ago but it > did not get included. Are you interested ? I found the attached email and have applied the patch. It looks like it "fell through the cracks" in April when we were trying to do too many things at once ... Thanks, again! --Russ To: address@hidden Subject: 20040429: patch for netCDF C++ support Reply-to: "Arnaud Desitter" <address@hidden> Date: Thu, 29 Apr 2004 10:27:00 -0600 ------- Forwarded Message >To: <address@hidden> >From: "Arnaud Desitter" <address@hidden> >Subject: patch for C++ support >Organization: ? >Keywords: 200404291441.i3TEfLtK000442 netCDF C++ This is a multi-part message in MIME format. ------=_NextPart_000_0289_01C42E00.6AFCB300 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Hi, I attach a patch that fixes some bugs in the C++ support. The operator assignment and copy constructor did not call the corresponding function of their parent class. Hope it will make it in the next version of NetCDF. Regards, ------=_NextPart_000_0289_01C42E00.6AFCB300 Content-Type: text/plain; name="patch-netcdf.txt" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="patch-netcdf.txt" Only in netcdf-3.5.1-new/src: config.cache=0A= Only in netcdf-3.5.1-new/src: config.log=0A= Only in netcdf-3.5.1-new/src: config.status=0A= diff -r -u netcdf-3.5.1/src/cxx/ncvalues.cpp = netcdf-3.5.1-new/src/cxx/ncvalues.cpp=0A= --- netcdf-3.5.1/src/cxx/ncvalues.cpp 2002-02-20 23:58:29.000000000 +0000=0A= +++ netcdf-3.5.1-new/src/cxx/ncvalues.cpp 2004-04-29 15:23:07.000000000 = +0100=0A= @@ -11,11 +11,11 @@=0A= =0A= #include "ncvalues.h"=0A= =0A= -NcValues::NcValues( void ) : the_number(0), the_type(ncNoType)=0A= +NcValues::NcValues( void ) : the_type(ncNoType), the_number(0)=0A= {}=0A= =0A= NcValues::NcValues(NcType type, long num)=0A= - : the_number(num), the_type(type)=0A= + : the_type(type), the_number(num)=0A= {}=0A= =0A= NcValues::~NcValues( void )=0A= diff -r -u netcdf-3.5.1/src/cxx/ncvalues.h = netcdf-3.5.1-new/src/cxx/ncvalues.h=0A= --- netcdf-3.5.1/src/cxx/ncvalues.h 2002-12-30 23:44:24.000000000 +0000=0A= +++ netcdf-3.5.1-new/src/cxx/ncvalues.h 2004-04-29 15:32:46.000000000 = +0100=0A= @@ -106,7 +106,8 @@=0A= : NcValues(NcTypeEnum(TYPE), num), the_values(new TYPE[num]) \=0A= {} \=0A= \=0A= -NcVal(TYPE)::NcVal(TYPE)(const NcVal(TYPE)& v) \=0A= +NcVal(TYPE)::NcVal(TYPE)(const NcVal(TYPE)& v) : \=0A= + NcValues(v) \=0A= { \=0A= delete[] the_values; \=0A= the_values =3D new TYPE[v.the_number]; \=0A= @@ -116,10 +117,13 @@=0A= \=0A= NcVal(TYPE)& NcVal(TYPE)::operator=3D(const NcVal(TYPE)& v) \=0A= { \=0A= - delete[] the_values; \=0A= - the_values =3D new TYPE[v.the_number]; \=0A= - for(int i =3D 0; i < v.the_number; i++) \=0A= - the_values[i] =3D v.the_values[i]; \=0A= + if ( &v !=3D this) { \=0A= + NcValues::operator=3D(v); \=0A= + delete[] the_values; \=0A= + the_values =3D new TYPE[v.the_number]; \=0A= + for(int i =3D 0; i < v.the_number; i++) \=0A= + the_values[i] =3D v.the_values[i]; \=0A= + } \=0A= return *this; \=0A= } \=0A= \=0A= Only in netcdf-3.5.1-new/src/fortran: nfconfig.inc=0A= Only in netcdf-3.5.1-new/src/libsrc: ncconfig.h=0A= Only in netcdf-3.5.1-new/src: macros.make=0A= ------=_NextPart_000_0289_01C42E00.6AFCB300-- -- NOTE: All email exchanges with Unidata User Support are recorded in the Unidata inquiry tracking system and then made publically available through the web. If you do not want to have your interactions made available in this way, you must let us know in each email you send to us. ------- End of Forwarded Message