From e3d8a655f3303845862a83f7016beac1935971e9 Mon Sep 17 00:00:00 2001 From: David Wells Date: Tue, 13 Aug 2024 16:18:21 -0600 Subject: [PATCH] ScalarPolynomialsBase: remove some reinterpret_casts. --- .../deal.II/base/scalar_polynomials_base.h | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/include/deal.II/base/scalar_polynomials_base.h b/include/deal.II/base/scalar_polynomials_base.h index 34ab391dab..1c96466fa5 100644 --- a/include/deal.II/base/scalar_polynomials_base.h +++ b/include/deal.II/base/scalar_polynomials_base.h @@ -258,29 +258,27 @@ inline Tensor ScalarPolynomialsBase::compute_derivative(const unsigned int i, const Point &p) const { - if (order == 1) + if constexpr (order == 1) { - auto derivative = compute_1st_derivative(i, p); - return *reinterpret_cast *>(&derivative); + return compute_1st_derivative(i, p); } - if (order == 2) + else if constexpr (order == 2) { - auto derivative = compute_2nd_derivative(i, p); - return *reinterpret_cast *>(&derivative); + return compute_2nd_derivative(i, p); } - if (order == 3) + else if constexpr (order == 3) { - auto derivative = compute_3rd_derivative(i, p); - return *reinterpret_cast *>(&derivative); + return compute_3rd_derivative(i, p); } - if (order == 4) + else if constexpr (order == 4) { - auto derivative = compute_4th_derivative(i, p); - return *reinterpret_cast *>(&derivative); + return compute_4th_derivative(i, p); + } + else + { + DEAL_II_NOT_IMPLEMENTED(); + return {}; } - DEAL_II_NOT_IMPLEMENTED(); - Tensor empty; - return empty; } DEAL_II_NAMESPACE_CLOSE -- 2.39.5