From: Wolfgang Bangerth Date: Wed, 16 Sep 2015 12:24:40 +0000 (-0500) Subject: Use covariant return types to avoid some casts. X-Git-Tag: v8.4.0-rc2~398^2~4 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=67f313cf166613e47b93ee2e73d31568f5305419;p=dealii.git Use covariant return types to avoid some casts. --- diff --git a/include/deal.II/fe/mapping_q1.h b/include/deal.II/fe/mapping_q1.h index 20c0b33045..ee4fbf1f0b 100644 --- a/include/deal.II/fe/mapping_q1.h +++ b/include/deal.II/fe/mapping_q1.h @@ -62,7 +62,7 @@ public: // for documentation, see the Mapping base class virtual - Mapping *clone () const; + MappingQ1 *clone () const; /** * @name Mapping points between reference and real cells diff --git a/include/deal.II/fe/mapping_q1_eulerian.h b/include/deal.II/fe/mapping_q1_eulerian.h index f8ae328377..289a0a8f6f 100644 --- a/include/deal.II/fe/mapping_q1_eulerian.h +++ b/include/deal.II/fe/mapping_q1_eulerian.h @@ -113,7 +113,7 @@ public: * then assumes ownership of it. */ virtual - Mapping *clone () const; + MappingQ1Eulerian *clone () const; /** * Always returns @p false because MappingQ1Eulerian does not in general diff --git a/source/fe/mapping_q.cc b/source/fe/mapping_q.cc index adfc5d6f9b..863fa940eb 100644 --- a/source/fe/mapping_q.cc +++ b/source/fe/mapping_q.cc @@ -82,7 +82,7 @@ MappingQ::MappingQ (const MappingQ &mapping) use_mapping_q_on_all_cells (mapping.use_mapping_q_on_all_cells), // clone the Q1 mapping for use on interior cells (if necessary) // or to create a good initial guess in transform_real_to_unit_cell() - q1_mapping (dynamic_cast*>(mapping.q1_mapping->clone())) + q1_mapping (mapping.q1_mapping->clone()) {} diff --git a/source/fe/mapping_q1.cc b/source/fe/mapping_q1.cc index 67b7ffc9f5..b375941d9b 100644 --- a/source/fe/mapping_q1.cc +++ b/source/fe/mapping_q1.cc @@ -48,14 +48,6 @@ MappingQ1::MappingQ1 () -template -MappingQ1::MappingQ1 (const unsigned int p) - : - MappingQGeneric (p) -{} - - - namespace internal { namespace MappingQ1 @@ -488,7 +480,7 @@ transform_real_to_unit_cell (const typename Triangulation::cell_it template -Mapping * +MappingQ1 * MappingQ1::clone () const { return new MappingQ1(*this); diff --git a/source/fe/mapping_q1_eulerian.cc b/source/fe/mapping_q1_eulerian.cc index a5e1df6478..9d2e75b536 100644 --- a/source/fe/mapping_q1_eulerian.cc +++ b/source/fe/mapping_q1_eulerian.cc @@ -89,7 +89,7 @@ get_vertices template -Mapping * +MappingQ1Eulerian * MappingQ1Eulerian::clone () const { return new MappingQ1Eulerian(*this);