]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Explicitly delete a function that we don't want to be called. 13393/head
authorWolfgang Bangerth <bangerth@colostate.edu>
Tue, 15 Feb 2022 22:22:38 +0000 (15:22 -0700)
committerWolfgang Bangerth <bangerth@colostate.edu>
Tue, 15 Feb 2022 22:24:13 +0000 (15:24 -0700)
include/deal.II/base/mpi.h

index 77ea392a58e38ac94680b83a5dc152af0fd96f49..e51f6252503db9b39ca3a4f97f1b52b4b440557d 100644 (file)
@@ -139,22 +139,6 @@ namespace Utilities
    */
   namespace MPI
   {
-#ifdef DOXYGEN
-    /**
-     * Given a pointer to an object of class T, return the matching
-     * `MPI_Datatype` to be used for MPI communication.
-     *
-     * As an example, passing an `int*` to this function returns `MPI_INT`.
-     *
-     * @note In reality, these functions are not template functions templated
-     * on the parameter T, but free standing inline function overloads. This
-     * templated version only exists so that it shows up in the documentation.
-     */
-    template <typename T>
-    MPI_Datatype
-    mpi_type_id(const T *);
-#endif
-
     /**
      * Return the number of MPI processes there exist in the given
      * @ref GlossMPICommunicator "communicator"
@@ -1327,10 +1311,27 @@ namespace Utilities
 
 
 
-#ifndef DOXYGEN
-
     /* --------------------------- inline functions ------------------------- */
 
+    /**
+     * Given a pointer to an object of class T, return the matching
+     * `MPI_Datatype` to be used for MPI communication.
+     *
+     * As an example, passing an `int*` to this function returns `MPI_INT`.
+     *
+     * @note In reality, these functions are not template functions templated
+     * on the parameter T, but free standing inline function overloads. This
+     * templated version only exists so that it shows up in the documentation.
+     * The `=delete` statement at the end of the declaration ensures that the
+     * compiler will never choose this general template and instead look
+     * for one of the overloads.
+     */
+    template <typename T>
+    inline MPI_Datatype
+    mpi_type_id(const T *) = delete;
+
+#ifndef DOXYGEN
+
 #  ifdef DEAL_II_WITH_MPI
     inline MPI_Datatype
     mpi_type_id(const bool *)

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.