@@ -284,7 +284,10 @@ std::unique_ptr<HighFive::DataSet> createDataset(HighFive::Group& g,
284284 if (dataset->getDataType () != HighFive::AtomicType<T>())
285285 {
286286 // different datatype -> delete
287- int result = H5Ldelete (g.getId (), datasetName.data (), H5P_DEFAULT);
287+ if (0 > H5Ldelete (g.getId (), datasetName.data (), H5P_DEFAULT))
288+ {
289+ std::cout << " [Hdf5Util - createDataset] Failed to delete dataset " << datasetName << std::endl;
290+ }
288291 dataset = std::make_unique<HighFive::DataSet>(
289292 g.createDataSet <T>(datasetName, dataSpace, properties));
290293 }
@@ -326,7 +329,10 @@ std::unique_ptr<HighFive::DataSet> createDataset(HighFive::Group& g,
326329 std::cout << " [Hdf5Util - createDataset] WARNING: could not resize. Generating new "
327330 " space..."
328331 << std::endl;
329- int result = H5Ldelete (g.getId (), datasetName.data (), H5P_DEFAULT);
332+ if (0 > H5Ldelete (g.getId (), datasetName.data (), H5P_DEFAULT))
333+ {
334+ std::cout << " [Hdf5Util - createDataset] Failed to delete dataset " << datasetName << std::endl;
335+ }
330336
331337 dataset = std::make_unique<HighFive::DataSet>(
332338 g.createDataSet <T>(datasetName, dataSpace, properties));
@@ -343,7 +349,8 @@ std::unique_ptr<HighFive::DataSet> createDataset(HighFive::Group& g,
343349 std::cout << " [Hdf5Util - createDataset] WARNING: could not create dataset ' << " << datasetName << " '. Data Type not allowed by H5" << std::endl;
344350 }
345351
346- return std::move (dataset);
352+ // using std::move() on dataset in this return prevents the compiler from optimizing away the copy (copy elision)
353+ return dataset;
347354}
348355
349356template <typename T, typename HT>
@@ -1088,4 +1095,4 @@ YAML::Node getAttributeMeta(
10881095
10891096} // namespace hdf5util
10901097
1091- } // namespace lvr2
1098+ } // namespace lvr2
0 commit comments