]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Make a function 'constexpr'.
authorWolfgang Bangerth <bangerth@colostate.edu>
Sat, 6 Feb 2021 00:13:34 +0000 (17:13 -0700)
committerWolfgang Bangerth <bangerth@colostate.edu>
Sat, 6 Feb 2021 04:44:52 +0000 (21:44 -0700)
I will need this for a later patch where I make the special ReferenceCell
objects 'constexpr' as well. This patch is simply meant to make that later
review marginally easier.

include/deal.II/grid/reference_cell.h
source/grid/reference_cell.cc

index 8c4e11689d81896c07eaf251e83017bec7a53754..1a466465f6481202c04c3aa5fde4355ea612e242 100644 (file)
@@ -60,7 +60,7 @@ namespace internal
      * but we have this one function in an internal namespace that is a friend
      * of the class and can be used to create the objects.
      */
-    dealii::ReferenceCell
+    constexpr dealii::ReferenceCell
     make_reference_cell_from_int(const std::uint8_t kind);
   } // namespace ReferenceCell
 } // namespace internal
@@ -297,7 +297,7 @@ private:
    * A kind of constructor -- not quite private because it can be
    * called by anyone, but at least hidden in an internal namespace.
    */
-  friend ReferenceCell
+  friend constexpr ReferenceCell
   internal::ReferenceCell::make_reference_cell_from_int(const std::uint8_t);
 };
 
@@ -338,6 +338,24 @@ ReferenceCell::operator!=(const ReferenceCell &type) const
 
 
 
+namespace internal
+{
+  namespace ReferenceCell
+  {
+    constexpr dealii::ReferenceCell
+    make_reference_cell_from_int(const std::uint8_t kind)
+    {
+      // Make sure these are the only indices from which objects can be
+      // created.
+      Assert((kind == static_cast<std::uint8_t>(-1)) || (kind < 8),
+             ExcInternalError());
+
+      // Call the private constructor, which we can from here because this
+      // function is a 'friend'.
+      return {kind};
+    }
+  } // namespace ReferenceCell
+} // namespace internal
 template <class Archive>
 inline void
 ReferenceCell::serialize(Archive &archive, const unsigned int /*version*/)
index c96a8fcb87508fc9ff27b312d2efd11c86e0fe2e..aa0f62fc32296a3112048fee5eb3bc992ae9e036 100644 (file)
 DEAL_II_NAMESPACE_OPEN
 
 
-namespace internal
-{
-  namespace ReferenceCell
-  {
-    dealii::ReferenceCell
-    make_reference_cell_from_int(const std::uint8_t kind)
-    {
-      // Make sure these are the only indices from which objects can be
-      // created.
-      Assert((kind == static_cast<std::uint8_t>(-1)) || (kind < 8),
-             ExcInternalError());
-
-      // Call the private constructor, which we can from here because this
-      // function is a 'friend'.
-      return {kind};
-    }
-  } // namespace ReferenceCell
-} // namespace internal
-
 
 const ReferenceCell ReferenceCell::Vertex =
   internal::ReferenceCell::make_reference_cell_from_int(0);

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.