#597 Add basic interfaces with and without virtual methods for functions/mappings
Metadata
| Property | Value | 
|---|---|
| Reported by | Carsten Gräser (graeser@math.fu-berlin.de) | 
| Reported at | Sep 13, 2009 19:43 | 
| Type | Feature Request | 
| Version | Git (pre2.4) [autotools] | 
| Operating System | Unspecified / All | 
| Last edited by | Oliver Sander (oliver.sander@tu-dresden.de) | 
| Last edited at | Nov 24, 2009 17:35 | 
| Closed by | Oliver Sander (oliver.sander@tu-dresden.de) | 
| Closed at | Nov 24, 2009 17:35 | 
| Closed in version | Unknown | 
| Resolution | Fixed | 
| Comment | Discussion settled on the meeting | 
Description
While there are several places (BoundarySegment, interpolate() in dune-localfunctions, various discretization modules) where mappings are used there is now common interface/base class for this purpose. Currently there are almost all combinations of eval()/evaluate()/operator(), virtual/non-virtual and return value/call by reference used.
I suggest to introduce a simple base classes with and without virtual functions to provide a common interface. The place for this should be dune-common and it could look like
template <class X, class Y> class FunctionBase { public: Y evaluate(const X& x); };
teplate <class X,class Y> class VirtualFunctionBase :public FunctionBase<X,Y> { public: virtual Y evaluate(const X& x); };