]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Pass parameters by reference
authorDaniel Garcia-Sanchez <daniel.garcia-sanchez@insp.upmc.fr>
Thu, 4 Oct 2018 17:16:26 +0000 (19:16 +0200)
committerDaniel Garcia-Sanchez <daniel.garcia-sanchez@insp.upmc.fr>
Wed, 9 Jan 2019 18:08:43 +0000 (19:08 +0100)
include/deal.II/base/hdf5.h
source/base/hdf5.cc
source/base/hdf5.inst.in

index 8301af3b7b019eeca5160da8c6171e9eab1335a6..84945e3e0a9c4901707336c508ebba113184810d 100644 (file)
@@ -282,7 +282,7 @@ namespace HDF5
      */
     template <typename T>
     T
-    attr(const std::string attr_name);
+    attr(const std::string &attr_name);
 
     /**
      * Writes an attribute. `T` can be `float`, `double`, `std::complex<float>`,
@@ -298,7 +298,7 @@ namespace HDF5
      */
     template <typename T>
     void
-    write_attr(const std::string attr_name, const T value);
+    write_attr(const std::string &attr_name, const T value);
 
 
     const std::string name;
@@ -340,14 +340,14 @@ namespace HDF5
 
   protected:
     // Open dataset
-    DataSet(const std::string name, const hid_t &parent_group_id, bool mpi);
+    DataSet(const std::string &name, const hid_t &parent_group_id, bool mpi);
 
     // Create dataset
-    DataSet(const std::string      name,
-            const hid_t &          parent_group_id,
-            std::vector<hsize_t>   dimensions,
-            std::shared_ptr<hid_t> t_type,
-            bool                   mpi);
+    DataSet(const std::string &         name,
+            const hid_t &               parent_group_id,
+            const std::vector<hsize_t> &dimensions,
+            std::shared_ptr<hid_t>      t_type,
+            const bool                  mpi);
 
   public:
     /**
@@ -392,7 +392,7 @@ namespace HDF5
      */
     template <typename number>
     std::vector<number>
-    read_selection(const std::vector<hsize_t> coordinates);
+    read_selection(const std::vector<hsize_t> &coordinates);
 
     /**
      * Reads a hyperslab from the dataset. The parameters are summarized
@@ -477,8 +477,8 @@ namespace HDF5
      */
     template <typename number>
     void
-    write_selection(const std::vector<number> &data,
-                    const std::vector<hsize_t> coordinates);
+    write_selection(const std::vector<number> & data,
+                    const std::vector<hsize_t> &coordinates);
 
     /**
      * Writes a data hyperslab to the dataset. The parameters are summarized
@@ -713,32 +713,32 @@ namespace HDF5
       open
     };
 
-    Group(const std::string name,
-          const Group &     parent_group,
-          const bool        mpi,
-          const Mode        mode);
+    Group(const std::string &name,
+          const Group &      parent_group,
+          const bool         mpi,
+          const Mode         mode);
 
     // This constructor is used by File
-    Group(const std::string name, const bool mpi);
+    Group(const std::string &name, const bool mpi);
 
   public:
     /**
      * Opens a group.
      */
     Group
-    group(const std::string name);
+    group(const std::string &name);
 
     /**
      * Creates a group.
      */
     Group
-    create_group(const std::string name);
+    create_group(const std::string &name);
 
     /**
      * Opens a dataset.
      */
     DataSet
-    dataset(const std::string name);
+    dataset(const std::string &name);
 
     /**
      * Creates a dataset. Number can be `float`, `double`,
@@ -752,8 +752,8 @@ namespace HDF5
      */
     template <typename number>
     DataSet
-    create_dataset(const std::string          name,
-                   const std::vector<hsize_t> dimensions) const;
+    create_dataset(const std::string &         name,
+                   const std::vector<hsize_t> &dimensions) const;
 
     /**
      * Creates and writes data to a dataset. Number can be `float`, `double`,
@@ -767,7 +767,7 @@ namespace HDF5
      */
     template <template <class...> class Container, typename number>
     void
-    write_dataset(const std::string name, const Container<number> &data) const;
+    write_dataset(const std::string &name, const Container<number> &data) const;
   };
 
   /**
@@ -794,23 +794,23 @@ namespace HDF5
     };
 
   private:
-    File(const std::string name,
-         const bool        mpi,
-         const MPI_Comm    mpi_communicator,
-         const Mode        mode);
+    File(const std::string &name,
+         const bool         mpi,
+         const MPI_Comm     mpi_communicator,
+         const Mode         mode);
 
   public:
     /**
      * Creates or opens a hdf5 file in parallel.
      */
-    File(const std::string name,
-         const MPI_Comm    mpi_communicator,
-         const Mode        mode = Mode::create);
+    File(const std::string &name,
+         const MPI_Comm     mpi_communicator,
+         const Mode         mode = Mode::create);
 
     /**
      * Creates or opens a hdf5 file.
      */
-    File(const std::string name, const Mode mode = Mode::create);
+    File(const std::string &name, const Mode mode = Mode::create);
   };
 } // namespace HDF5
 
index 0081db2b901cbeb1aaf796329a40ecdc79df5542..a08682eecd04c464e10c9de718292e91e9038bc6 100644 (file)
@@ -350,7 +350,7 @@ namespace HDF5
 
   template <typename T>
   T
-  HDF5Object::attr(const std::string attr_name)
+  HDF5Object::attr(const std::string &attr_name)
   {
     std::shared_ptr<hid_t> t_type = internal::get_hdf5_datatype<T>();
     T                      value;
@@ -368,7 +368,7 @@ namespace HDF5
 
   template <>
   bool
-  HDF5Object::attr(const std::string attr_name)
+  HDF5Object::attr(const std::string &attr_name)
   {
     // The enum field generated by h5py can be casted to int
     int   int_value;
@@ -386,7 +386,7 @@ namespace HDF5
 
   template <>
   std::string
-  HDF5Object::attr(const std::string attr_name)
+  HDF5Object::attr(const std::string &attr_name)
   {
     // Reads a UTF8 variable string
     //
@@ -432,7 +432,7 @@ namespace HDF5
 
   template <typename T>
   void
-  HDF5Object::write_attr(const std::string attr_name, const T value)
+  HDF5Object::write_attr(const std::string &attr_name, const T value)
   {
     hid_t                  attr;
     hid_t                  aid;
@@ -466,7 +466,7 @@ namespace HDF5
 
   template <>
   void
-  HDF5Object::write_attr(const std::string attr_name, const std::string value)
+  HDF5Object::write_attr(const std::string &attr_name, const std::string value)
   {
     // Writes a UTF8 variable string
     //
@@ -518,9 +518,9 @@ namespace HDF5
     Assert(ret >= 0, ExcMessage("Error at H5Aclose"));
   }
 
-  DataSet::DataSet(const std::string name,
-                   const hid_t &     parent_group_id,
-                   const bool        mpi)
+  DataSet::DataSet(const std::string &name,
+                   const hid_t &      parent_group_id,
+                   const bool         mpi)
     : HDF5Object(name, mpi)
     , _query_io_mode(false)
     , _io_mode(H5D_MPIO_NO_COLLECTIVE)
@@ -564,11 +564,11 @@ namespace HDF5
       }
   }
 
-  DataSet::DataSet(const std::string      name,
-                   const hid_t &          parent_group_id,
-                   std::vector<hsize_t>   dimensions,
-                   std::shared_ptr<hid_t> t_type,
-                   const bool             mpi)
+  DataSet::DataSet(const std::string &         name,
+                   const hid_t &               parent_group_id,
+                   const std::vector<hsize_t> &dimensions,
+                   std::shared_ptr<hid_t>      t_type,
+                   const bool                  mpi)
     : HDF5Object(name, mpi)
     , _rank(dimensions.size())
     , _dimensions(dimensions)
@@ -657,7 +657,7 @@ namespace HDF5
 
   template <typename number>
   std::vector<number>
-  DataSet::read_selection(const std::vector<hsize_t> coordinates)
+  DataSet::read_selection(const std::vector<hsize_t> &coordinates)
   {
     Assert(coordinates.size() % _rank == 0,
            ExcMessage(
@@ -888,8 +888,8 @@ namespace HDF5
 
   template <typename number>
   void
-  DataSet::write_selection(const std::vector<number> &data,
-                           const std::vector<hsize_t> coordinates)
+  DataSet::write_selection(const std::vector<number> & data,
+                           const std::vector<hsize_t> &coordinates)
   {
     AssertDimension(coordinates.size(), data.size() * _rank);
     std::shared_ptr<hid_t> t_type = internal::get_hdf5_datatype<number>();
@@ -1249,10 +1249,10 @@ namespace HDF5
     return _rank;
   }
 
-  Group::Group(const std::string name,
-               const Group &     parentGroup,
-               const bool        mpi,
-               const Mode        mode)
+  Group::Group(const std::string &name,
+               const Group &      parentGroup,
+               const bool         mpi,
+               const Mode         mode)
     : HDF5Object(name, mpi)
   {
     hdf5_reference = std::shared_ptr<hid_t>(new hid_t, [](auto pointer) {
@@ -1281,32 +1281,32 @@ namespace HDF5
       }
   }
 
-  Group::Group(const std::string name, const bool mpi)
+  Group::Group(const std::string &name, const bool mpi)
     : HDF5Object(name, mpi)
   {}
 
   Group
-  Group::group(const std::string name)
+  Group::group(const std::string &name)
   {
     return Group(name, *this, mpi, Mode::open);
   }
 
   Group
-  Group::create_group(const std::string name)
+  Group::create_group(const std::string &name)
   {
     return Group(name, *this, mpi, Mode::create);
   }
 
   DataSet
-  Group::dataset(const std::string name)
+  Group::dataset(const std::string &name)
   {
     return DataSet(name, *hdf5_reference, mpi);
   }
 
   template <typename number>
   DataSet
-  Group::create_dataset(const std::string          name,
-                        const std::vector<hsize_t> dimensions) const
+  Group::create_dataset(const std::string &         name,
+                        const std::vector<hsize_t> &dimensions) const
   {
     std::shared_ptr<hid_t> t_type = internal::get_hdf5_datatype<number>();
     return DataSet(name, *hdf5_reference, dimensions, t_type, mpi);
@@ -1314,7 +1314,7 @@ namespace HDF5
 
   template <template <class...> class Container, typename number>
   void
-  Group::write_dataset(const std::string        name,
+  Group::write_dataset(const std::string &      name,
                        const Container<number> &data) const
   {
     std::vector<hsize_t> dimensions = internal::get_container_dimensions(data);
@@ -1322,10 +1322,10 @@ namespace HDF5
     dataset.write(data);
   }
 
-  File::File(const std::string name,
-             const bool        mpi,
-             const MPI_Comm    mpi_communicator,
-             const Mode        mode)
+  File::File(const std::string &name,
+             const bool         mpi,
+             const MPI_Comm     mpi_communicator,
+             const Mode         mode)
     : Group(name, mpi)
   {
     hdf5_reference = std::shared_ptr<hid_t>(new hid_t, [](auto pointer) {
@@ -1379,13 +1379,13 @@ namespace HDF5
       }
   }
 
-  File::File(const std::string name,
-             const MPI_Comm    mpi_communicator,
-             const Mode        mode)
+  File::File(const std::string &name,
+             const MPI_Comm     mpi_communicator,
+             const Mode         mode)
     : File(name, true, mpi_communicator, mode)
   {}
 
-  File::File(const std::string name, const Mode mode)
+  File::File(const std::string &name, const Mode mode)
     : File(name, false, MPI_COMM_NULL, mode)
   {}
 
@@ -1401,17 +1401,17 @@ namespace HDF5
   // std::complex<float> and std::complex<double> in hdf5.inst
 
   template int
-  HDF5Object::attr<int>(const std::string attr_name);
+  HDF5Object::attr<int>(const std::string &attr_name);
   template unsigned int
-  HDF5Object::attr<unsigned int>(const std::string attr_name);
+  HDF5Object::attr<unsigned int>(const std::string &attr_name);
   // The specializations of HDF5Object::attr<std::string>
   // and HDF5Object::attr<bool> have been defined above
 
   template void
-  HDF5Object::write_attr<int>(const std::string attr_name, int value);
+  HDF5Object::write_attr<int>(const std::string &attr_name, int value);
   template void
-  HDF5Object::write_attr<unsigned int>(const std::string attr_name,
-                                       unsigned int      value);
+  HDF5Object::write_attr<unsigned int>(const std::string &attr_name,
+                                       unsigned int       value);
 
   template std::vector<int>
   DataSet::read<std::vector, int>();
@@ -1419,9 +1419,10 @@ namespace HDF5
   DataSet::read<std::vector, unsigned int>();
 
   template std::vector<int>
-  DataSet::read_selection<int>(const std::vector<hsize_t> coordinates);
+  DataSet::read_selection<int>(const std::vector<hsize_t> &coordinates);
   template std::vector<unsigned int>
-  DataSet::read_selection<unsigned int>(const std::vector<hsize_t> coordinates);
+  DataSet::read_selection<unsigned int>(
+    const std::vector<hsize_t> &coordinates);
 
   template std::vector<int>
   DataSet::read_hyperslab<std::vector, int>(const std::vector<hsize_t> &offset,
@@ -1443,12 +1444,12 @@ namespace HDF5
     const std::vector<unsigned int> &data);
 
   template void
-  DataSet::write_selection<int>(const std::vector<int> &   data,
-                                const std::vector<hsize_t> coordinates);
+  DataSet::write_selection<int>(const std::vector<int> &    data,
+                                const std::vector<hsize_t> &coordinates);
   template void
   DataSet::write_selection<unsigned int>(
     const std::vector<unsigned int> &data,
-    const std::vector<hsize_t>       coordinates);
+    const std::vector<hsize_t> &     coordinates);
 
   template void
   DataSet::write_hyperslab<std::vector, int>(const std::vector<int> &    data,
@@ -1483,19 +1484,19 @@ namespace HDF5
   DataSet::write_none<unsigned int>();
 
   template DataSet
-  Group::create_dataset<int>(const std::string          name,
-                             const std::vector<hsize_t> dimensions) const;
+  Group::create_dataset<int>(const std::string &         name,
+                             const std::vector<hsize_t> &dimensions) const;
   template DataSet
   Group::create_dataset<unsigned int>(
-    const std::string          name,
-    const std::vector<hsize_t> dimensions) const;
+    const std::string &         name,
+    const std::vector<hsize_t> &dimensions) const;
 
   template void
-  Group::write_dataset<std::vector, int>(const std::string       name,
+  Group::write_dataset<std::vector, int>(const std::string &     name,
                                          const std::vector<int> &data) const;
   template void
   Group::write_dataset<std::vector, unsigned int>(
-    const std::string                name,
+    const std::string &              name,
     const std::vector<unsigned int> &data) const;
 
 #  endif // DOXYGEN
index 979424f7b810b5ed0eaaef31b6ee1fa4aff675aa..04f0526ecf59bd92206de2890d7562b977c122c3 100644 (file)
 
 for (number : REAL_AND_COMPLEX_SCALARS)
   {
-    template number HDF5Object::attr<number>(const std::string attr_name);
-    template void   HDF5Object::write_attr<number>(const std::string attr_name,
-                                                 number            value);
+    template number HDF5Object::attr<number>(const std::string &attr_name);
+    template void   HDF5Object::write_attr<number>(const std::string &attr_name,
+                                                 number             value);
 
     template std::vector<number> DataSet::read<std::vector, number>();
     template Vector<number>      DataSet::read<Vector, number>();
     template FullMatrix<number>  DataSet::read<FullMatrix, number>();
 
     template std::vector<number> DataSet::read_selection<number>(
-      const std::vector<hsize_t> coordinates);
+      const std::vector<hsize_t> &coordinates);
 
     template std::vector<number> DataSet::read_hyperslab<std::vector, number>(
       const std::vector<hsize_t> &offset, const std::vector<hsize_t> &count);
@@ -43,7 +43,7 @@ for (number : REAL_AND_COMPLEX_SCALARS)
       const FullMatrix<number> &data);
 
     template void DataSet::write_selection<number>(
-      const std::vector<number> &data, const std::vector<hsize_t> coordinates);
+      const std::vector<number> &data, const std::vector<hsize_t> &coordinates);
 
     template void DataSet::write_hyperslab<std::vector, number>(
       const std::vector<number> & data,
@@ -83,14 +83,14 @@ for (number : REAL_AND_COMPLEX_SCALARS)
     template void DataSet::write_none<number>();
 
     template DataSet Group::create_dataset<number>(
-      const std::string name, const std::vector<hsize_t> dimensions) const;
+      const std::string &name, const std::vector<hsize_t> &dimensions) const;
 
     template void Group::write_dataset<std::vector, number>(
-      const std::string name, const std::vector<number> &data) const;
+      const std::string &name, const std::vector<number> &data) const;
 
     template void Group::write_dataset<Vector, number>(
-      const std::string name, const Vector<number> &data) const;
+      const std::string &name, const Vector<number> &data) const;
 
     template void Group::write_dataset<FullMatrix, number>(
-      const std::string name, const FullMatrix<number> &data) const;
+      const std::string &name, const FullMatrix<number> &data) const;
   }

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.