summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean McBride <sean@rogue-research.com>2024-03-09 05:09:47 (GMT)
committerGitHub <noreply@github.com>2024-03-09 05:09:47 (GMT)
commit16255aa8c3ff923bb33b54a77607bc5d35fabef0 (patch)
tree3f2e391a35d84f840532f62ce5eaff7c72b0d9b9
parent114d2d02112e52cfdd52c6db1e4e590a6ebb9971 (diff)
downloadhdf5-16255aa8c3ff923bb33b54a77607bc5d35fabef0.zip
hdf5-16255aa8c3ff923bb33b54a77607bc5d35fabef0.tar.gz
hdf5-16255aa8c3ff923bb33b54a77607bc5d35fabef0.tar.bz2
Fixed -Wdeprecated-copy-dtor warnings by implementing a copy assignment operator (#3306)
Example warning was: warning: definition of implicit copy assignment operator for 'Group' is deprecated because it has a user-declared destructor [-Wdeprecated-copy-dtor]
-rw-r--r--c++/src/H5Attribute.cpp12
-rw-r--r--c++/src/H5Attribute.h3
-rw-r--r--c++/src/H5Group.cpp12
-rw-r--r--c++/src/H5Group.h3
4 files changed, 30 insertions, 0 deletions
diff --git a/c++/src/H5Attribute.cpp b/c++/src/H5Attribute.cpp
index e838b4f..e629a80 100644
--- a/c++/src/H5Attribute.cpp
+++ b/c++/src/H5Attribute.cpp
@@ -605,4 +605,16 @@ Attribute::~Attribute()
}
}
+//--------------------------------------------------------------------------
+// Function: Copy assignment operator
+Attribute &
+Attribute::operator=(const Attribute &original)
+{
+ if (&original != this) {
+ setId(original.id);
+ }
+
+ return *this;
+}
+
} // namespace H5
diff --git a/c++/src/H5Attribute.h b/c++/src/H5Attribute.h
index 6851e1a..9701102 100644
--- a/c++/src/H5Attribute.h
+++ b/c++/src/H5Attribute.h
@@ -78,6 +78,9 @@ class H5_DLLCPP Attribute : public AbstractDs, public H5Location {
// Destructor: properly terminates access to this attribute.
virtual ~Attribute() override;
+ // Copy assignment operator.
+ Attribute &operator=(const Attribute &original);
+
#ifndef DOXYGEN_SHOULD_SKIP_THIS
protected:
// Sets the attribute id.
diff --git a/c++/src/H5Group.cpp b/c++/src/H5Group.cpp
index 35e9d26..248e71f 100644
--- a/c++/src/H5Group.cpp
+++ b/c++/src/H5Group.cpp
@@ -274,4 +274,16 @@ Group::~Group()
}
}
+//--------------------------------------------------------------------------
+// Function: Copy assignment operator
+Group &
+Group::operator=(const Group &original)
+{
+ if (&original != this) {
+ setId(original.id);
+ }
+
+ return *this;
+}
+
} // namespace H5
diff --git a/c++/src/H5Group.h b/c++/src/H5Group.h
index cb9b092..9c89dd1 100644
--- a/c++/src/H5Group.h
+++ b/c++/src/H5Group.h
@@ -67,6 +67,9 @@ class H5_DLLCPP Group : public H5Object, public CommonFG {
// Destructor
virtual ~Group() override;
+ // Copy assignment operator.
+ Group &operator=(const Group &original);
+
// Creates a copy of an existing group using its id.
Group(const hid_t group_id);