NSF Unidata

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

netcdf c++ classes

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.



Hi Dan,

I'm just starting to look over the changes you sent me for the netCDF C++
interface, and have a couple of questions about changes to ncvalues.hh.

1. In the statement

    #define ncBad_int ncBad_short

   I think this should be 

    #define ncBad_int ncBad_long

   instead, because "ncInt" is intended to be synonymous with "ncLong"
   rather than with "ncShort".


2. In ncvalues.hh, you defined a new member function NcVal::invalid(), but
   the definition you provided makes it appear that either the name should
   be "valid" or the return values should be changed:

    int NcVal(TYPE)::invalid( void ) const                                   \
    {                                                                        \
        for(int i=0;i<the_number;i++)                                        \
            if (the_values[i] == ncBad_ ## TYPE) return 0;                   \
        return 1;                                                            \
    }                                                                        \

    As I read it, this returns 0 if a bad (invalid) value was detected in
    the block of values and 1 if none of the values was bad.  If the return
    value is being treated as a boolean, shouldn't this be the other way
    around?
    
--Russ