From 39ceb4523e640c63085aa774b793fa24717617f1 Mon Sep 17 00:00:00 2001
From: Elias Pipping <elias.pipping@fu-berlin.de>
Date: Tue, 11 Sep 2012 14:26:04 +0200
Subject: [PATCH] Do not inherit constructors

---
 src/timestepping.cc | 26 ++++++++++++++++----------
 1 file changed, 16 insertions(+), 10 deletions(-)

diff --git a/src/timestepping.cc b/src/timestepping.cc
index daf4491d..dee746d0 100644
--- a/src/timestepping.cc
+++ b/src/timestepping.cc
@@ -45,11 +45,14 @@ template <class VectorType, class MatrixType, class FunctionType, int dim>
 class ImplicitEuler
     : public TimeSteppingScheme<VectorType, MatrixType, FunctionType, dim> {
 public:
-  // Work around the fact that nobody implements constructor inheritance
-  template <class... Args>
-  ImplicitEuler(Args &&... args)
-      : TimeSteppingScheme<VectorType, MatrixType, FunctionType, dim>(args...) {
-  }
+  ImplicitEuler(VectorType const &_ell, MatrixType const &_A,
+                VectorType const &_u_old, VectorType const *_u_old_old_ptr,
+                Dune::BitSetVector<dim> const &_dirichletNodes,
+                FunctionType const &_dirichletFunction, double _time,
+                double _tau)
+      : TimeSteppingScheme<VectorType, MatrixType, FunctionType, dim>(
+            _ell, _A, _u_old, _u_old_old_ptr, _dirichletNodes,
+            _dirichletFunction, _time, _tau) {}
 
   void virtual setup(VectorType &problem_rhs, VectorType &problem_iterate,
                      MatrixType &problem_A) const {
@@ -95,11 +98,14 @@ template <class VectorType, class MatrixType, class FunctionType, int dim>
 class ImplicitTwoStep
     : public TimeSteppingScheme<VectorType, MatrixType, FunctionType, dim> {
 public:
-  // Work around the fact that nobody implements constructor inheritance
-  template <class... Args>
-  ImplicitTwoStep(Args &&... args)
-      : TimeSteppingScheme<VectorType, MatrixType, FunctionType, dim>(args...) {
-  }
+  ImplicitTwoStep(VectorType const &_ell, MatrixType const &_A,
+                  VectorType const &_u_old, VectorType const *_u_old_old_ptr,
+                  Dune::BitSetVector<dim> const &_dirichletNodes,
+                  FunctionType const &_dirichletFunction, double _time,
+                  double _tau)
+      : TimeSteppingScheme<VectorType, MatrixType, FunctionType, dim>(
+            _ell, _A, _u_old, _u_old_old_ptr, _dirichletNodes,
+            _dirichletFunction, _time, _tau) {}
 
   void virtual setup(VectorType &problem_rhs, VectorType &problem_iterate,
                      MatrixType &problem_A) const {
-- 
GitLab