]> https://gitweb.dealii.org/ - dealii.git/commitdiff
modernize-use-equals-delete
authorDaniel Arndt <daniel.arndt@iwr.uni-heidelberg.de>
Wed, 16 Jan 2019 01:06:34 +0000 (02:06 +0100)
committerDaniel Arndt <daniel.arndt@iwr.uni-heidelberg.de>
Sat, 19 Jan 2019 22:37:59 +0000 (23:37 +0100)
12 files changed:
contrib/utilities/run_clang_tidy.sh
include/deal.II/base/linear_index_iterator.h
include/deal.II/base/parameter_handler.h
include/deal.II/base/symmetric_tensor.h
include/deal.II/base/table.h
include/deal.II/fe/fe.h
include/deal.II/fe/fe_values.h
include/deal.II/grid/tria_accessor.h
include/deal.II/lac/petsc_sparse_matrix.h
include/deal.II/lac/petsc_vector_base.h
include/deal.II/lac/solver_gmres.h
include/deal.II/numerics/time_dependent.h

index 2277ff4320248e7e13959a11db94252491a85007..ace389e4d005d62a503b9bfda7dc3b1c8a8483f7 100755 (executable)
@@ -53,6 +53,7 @@ CHECKS="-*,
         modernize-redundant-void-arg,
         modernize-use-emplace,
         modernize-use-equals-default,
+        modernize-use-equals-delete,
         modernize-use-nullptr,
         modernize-use-using,
         mpi-*,
index 363fb6f9403138ccffa4a1b9b44db94f87bde2a2..84b264da377254e058e751a080d27d3ce8e5a105 100644 (file)
@@ -296,10 +296,10 @@ public:
   operator>(const DerivedIterator &) const;
 
 protected:
-  /**
+  /*
    * The inheriting class should have a default constructor.
    */
-  LinearIndexIterator() = default;
+  LinearIndexIterator() = default; // NOLINT
 
   /**
    * Constructor that copies an accessor.
index a57d3875fc06e32937076577fbb9e339898594f8..54527f6bee3e7e55fa31e260c5fdf3f2d036a520 100644 (file)
@@ -843,18 +843,6 @@ class MultipleParameterLoop;
  */
 class ParameterHandler : public Subscriptor
 {
-private:
-  /**
-   * Inhibit automatic CopyConstructor.
-   */
-  ParameterHandler(const ParameterHandler &) = delete;
-
-  /**
-   * Inhibit automatic assignment operator.
-   */
-  ParameterHandler &
-  operator=(const ParameterHandler &) = delete;
-
 public:
   /**
    * List of possible output formats used for
@@ -912,6 +900,17 @@ public:
    */
   virtual ~ParameterHandler() override = default;
 
+  /**
+   * Inhibit automatic CopyConstructor.
+   */
+  ParameterHandler(const ParameterHandler &) = delete;
+
+  /**
+   * Inhibit automatic assignment operator.
+   */
+  ParameterHandler &
+  operator=(const ParameterHandler &) = delete;
+
   /**
    * Parse each line from a stream until the stream returns the <tt>eof</tt>
    * condition or error to provide values for known parameter fields. The second
index 64e4105f8222e637d061296c0802be6de5475ef6..f903c4078da677cb5e942fb986adf20a5f518787 100644 (file)
@@ -442,11 +442,6 @@ namespace internal
        */
       Accessor(tensor_type &tensor, const TableIndices<rank> &previous_indices);
 
-      /**
-       * Default constructor. Not needed, so deleted.
-       */
-      Accessor() = delete;
-
       /**
        * Copy constructor.
        */
index 52094a8e8d29f4a20536542935b71e08b1d6a440..0c2ee33af4ce1129e76225bdbb7a600a10b57ae0 100644 (file)
@@ -178,11 +178,6 @@ namespace internal
        */
       Accessor(const TableType &table, const iterator data);
 
-      /**
-       * Default constructor. Not needed, and invisible, so deleted.
-       */
-      Accessor() = delete;
-
     public:
       /**
        * Copy constructor. This constructor is public so that one can pass
@@ -283,11 +278,6 @@ namespace internal
        */
       Accessor(const TableType &table, const iterator data);
 
-      /**
-       * Default constructor. Not needed, so deleted.
-       */
-      Accessor() = delete;
-
     public:
       /**
        * Copy constructor. This constructor is public so that one can pass
@@ -298,7 +288,6 @@ namespace internal
        */
       Accessor(const Accessor &a);
 
-
       /**
        * Index operator. Performs a range check.
        */
index 01b4b05546ba2fb41c22ad6c5af7c9604e7b6fd9..0ab10930853b915be149c5ba1cb34d48cd6b1d48 100644 (file)
@@ -680,12 +680,6 @@ public:
    */
   class InternalDataBase
   {
-  private:
-    /**
-     * Copy construction is forbidden.
-     */
-    InternalDataBase(const InternalDataBase &) = delete;
-
   public:
     /**
      * Constructor. Sets update_flags to @p update_default and @p first_cell
@@ -698,6 +692,11 @@ public:
      */
     virtual ~InternalDataBase() = default;
 
+    /**
+     * Copy construction is forbidden.
+     */
+    InternalDataBase(const InternalDataBase &) = delete;
+
     /**
      * A set of update flags specifying the kind of information that an
      * implementation of the FiniteElement interface needs to compute on each
index 724506943bd95505e546ad384b6b44954e12ee0a..671caca46489088359b6dcf2dc6074f0ca2046db 100644 (file)
@@ -2046,11 +2046,18 @@ public:
                const FiniteElement<dim, spacedim> &fe);
 
   /**
-   * The copy operator is deleted since objects of this class are not copyable.
+   * The copy assignment is deleted since objects of this class are not
+   * copyable.
    */
   FEValuesBase &
   operator=(const FEValuesBase &) = delete;
 
+  /**
+   * The copy constructor is deleted since objects of this class are not
+   * copyable.
+   */
+  FEValuesBase(const FEValuesBase &) = delete;
+
   /**
    * Destructor.
    */
@@ -3391,12 +3398,6 @@ protected:
     const typename Triangulation<dim, spacedim>::cell_iterator &cell);
 
 private:
-  /**
-   * Copy constructor. Since objects of this class are not copyable, we make
-   * it private, and also do not implement it.
-   */
-  FEValuesBase(const FEValuesBase &);
-
   /**
    * A cache for all possible FEValuesViews objects.
    */
index fba857e4d717cce2512e53e0c7e9a95033a2e441..9698bb6038e02d22dceb1979f4bdc1b79feb5a36 100644 (file)
@@ -310,6 +310,18 @@ public:
    */
   static const unsigned int structure_dimension = structdim;
 
+  /**
+   * Copy operator. These operators are usually used in a context like
+   * <tt>iterator a,b; *a=*b;</tt>. Presumably, the intent here is to copy the
+   * object pointed to
+   * by @p b to the object pointed to by @p a. However, the result of
+   * dereferencing an iterator is not an object but an accessor; consequently,
+   * this operation is not useful for iterators on triangulations.
+   * Consequently, this operator is declared as deleted and can not be used.
+   */
+  void
+  operator=(const TriaAccessorBase *) = delete;
+
 protected:
   /**
    * Declare the data type that this accessor class expects to get passed from
@@ -331,18 +343,6 @@ protected:
    */
   TriaAccessorBase(const TriaAccessorBase &);
 
-  /**
-   * Copy operator. These operators are usually used in a context like
-   * <tt>iterator a,b; *a=*b;</tt>. Presumably, the intent here is to copy the
-   * object pointed to
-   * by @p b to the object pointed to by @p a. However, the result of
-   * dereferencing an iterator is not an object but an accessor; consequently,
-   * this operation is not useful for iterators on triangulations.
-   * Consequently, this operator is declared as deleted and can not be used.
-   */
-  void
-  operator=(const TriaAccessorBase *) = delete;
-
   /**
    * Copy operator. Since this is only called from iterators, do not return
    * anything, since the iterator will return itself.
index a36670fbcbf8cf405bed4fbebe8e6b8a5716af2b..e5f826ef0c7c3ed05e62c30da124db4410f827e4 100644 (file)
@@ -145,6 +145,17 @@ namespace PETScWrappers
     SparseMatrix &
     operator=(const double d);
 
+    /**
+     * The copy constructor is deleted.
+     */
+    SparseMatrix(const SparseMatrix &) = delete;
+
+    /**
+     * The copy assignment operator is deleted.
+     */
+    SparseMatrix &
+    operator=(const SparseMatrix &) = delete;
+
     /**
      * Throw away the present matrix and generate one that has the same
      * properties as if it were created by the constructor of this class with
@@ -241,16 +252,6 @@ namespace PETScWrappers
            const MPI::Vector & V = MPI::Vector()) const;
 
   private:
-    /**
-     * Purposefully not implemented
-     */
-    SparseMatrix(const SparseMatrix &) = delete;
-    /**
-     * Purposefully not implemented
-     */
-    SparseMatrix &
-    operator=(const SparseMatrix &) = delete;
-
     /**
      * Do the actual work for the respective reinit() function and the
      * matching constructor, i.e. create a matrix. Getting rid of the previous
index 09ad999ca94c1761e4dce5fa0463389a2282dd3e..392cd2b1988aaafed6a0b8c8e4509560cc05f359 100644 (file)
@@ -269,6 +269,13 @@ namespace PETScWrappers
      */
     explicit VectorBase(const Vec &v);
 
+    /**
+     * The copy assignment operator is deleted to avoid accidental usage with
+     * unexpected behavior.
+     */
+    VectorBase &
+    operator=(const VectorBase &) = delete;
+
     /**
      * Destructor
      */
@@ -806,15 +813,6 @@ namespace PETScWrappers
                          const size_type *  indices,
                          const PetscScalar *values,
                          const bool         add_values);
-
-  private:
-    /**
-     * Assignment operator. This is currently not implemented, so it is
-     * deliberately left as private (and undefined) to prevent accidental
-     * usage.
-     */
-    VectorBase &
-    operator=(const VectorBase &) = delete;
   };
 
 
index 7c846bb58e2fb811026db6afcfc3b66defa5bc31..04f9fa48ae40e17d423f410dfcb3752e8d504386 100644 (file)
@@ -238,6 +238,11 @@ public:
    */
   SolverGMRES(SolverControl &cn, const AdditionalData &data = AdditionalData());
 
+  /**
+   * The copy constructor is deleted.
+   */
+  SolverGMRES(const SolverGMRES<VectorType> &) = delete;
+
   /**
    * Solve the linear system $Ax=b$ for x.
    */
@@ -431,13 +436,6 @@ protected:
    * Auxiliary matrix for inverting @p H
    */
   FullMatrix<double> H1;
-
-
-private:
-  /**
-   * No copy constructor.
-   */
-  SolverGMRES(const SolverGMRES<VectorType> &);
 };
 
 /**
index 57e7ab631a4eae549b23f3ac89af8b9bb28790da..5a3b45c8760914822490c64ee684bd4bd5f8e373 100644 (file)
@@ -693,6 +693,19 @@ public:
    */
   virtual ~TimeStepBase() override = default;
 
+  /**
+   * The copy constructor is deleted to avoid shallow copies with unexpected
+   * behavior.
+   */
+  TimeStepBase(const TimeStepBase &) = delete;
+
+  /**
+   * The copy assignment operator is dleetd to avoid shallow copies winth
+   * unexpected behavior.
+   */
+  TimeStepBase &
+  operator=(const TimeStepBase &) = delete;
+
   /**
    * Reconstruct all the data that is needed for this time level to work. This
    * function serves to reget all the variables and data structures to work
@@ -926,24 +939,6 @@ private:
   void
   set_sweep_no(const unsigned int sweep_no);
 
-
-  /**
-   * Copy constructor. I can see no reason why someone might want to use it,
-   * so I don't provide it. Since this class has pointer members, making it
-   * private prevents the compiler to provide it's own, incorrect one if
-   * anyone chose to copy such an object.
-   */
-  TimeStepBase(const TimeStepBase &) = delete;
-
-  /**
-   * Copy operator. I can see no reason why someone might want to use it, so I
-   * don't provide it. Since this class has pointer members, making it private
-   * prevents the compiler to provide it's own, incorrect one if anyone chose
-   * to copy such an object.
-   */
-  TimeStepBase &
-  operator=(const TimeStepBase &) = delete;
-
   // make the manager object a friend
   friend class TimeDependent;
 };

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.