[svn-r26457] Purpose: Fix warnings HDFFV-8658

Description:
    The following two constructors of classes: AbstractDs, IdComponent,
    H5Location, and H5Object are no longer appropriate after the data member
    "id" had been moved from IdComponent to the sub-classes.

    The copy constructors are noop and will be generated by the compilers if
    needed so they can be removed in 1.8.15 without effecting applications. The
    other constructors will be removed from 1.10 release, and then from 1.8 if
    their removal does not raise any problems in at least two 1.10 releases.

    <Classname>(const hid_t h5_id);
    <Classname>(const <Classname>& original);

    Deprecation warnings are added to each of these classes.

    The other classes are changed to call the default constructor instead of
    one of the constructors above.
Platforms tested:
    Linux/64 (platypus)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
This commit is contained in:
Binh-Minh Ribler
2015-03-15 01:47:56 -05:00
parent 66a7cc1289
commit a382658282
11 changed files with 104 additions and 31 deletions

View File

@@ -47,9 +47,6 @@ namespace H5 {
class H5_DLLCPP H5Object : public H5Location {
public:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Copy constructor: makes copy of an H5Object object.
H5Object(const H5Object& original);
// Gets the name of this HDF5 object, i.e., Group, DataSet, or
// DataType.
ssize_t getObjName(char *obj_name, size_t buf_size = 0) const;
@@ -63,9 +60,19 @@ class H5_DLLCPP H5Object : public H5Location {
// Default constructor
H5Object();
// *** Deprecation warning ***
// The following two constructors are no longer appropriate after the
// data member "id" had been moved to the sub-classes.
// The copy constructor is a noop and is removed in 1.8.15 and the
// other will be removed from 1.10 release, and then from 1.8 if its
// removal does not raise any problems in two 1.10 releases.
// Creates a copy of an existing object giving the object id
H5Object( const hid_t object_id );
// Copy constructor: makes copy of an H5Object object.
// H5Object(const H5Object& original);
#endif // DOXYGEN_SHOULD_SKIP_THIS
}; /* end class H5Object */