Rheolef  7.2
an efficient C++ finite element environment
field_lazy.h
Go to the documentation of this file.
1 # ifndef _RHEOLEF_FIELD_LAZY_H
2 # define _RHEOLEF_FIELD_LAZY_H
3 //
4 // This file is part of Rheolef.
5 //
6 // Copyright (C) 2000-2009 Pierre Saramito <Pierre.Saramito@imag.fr>
7 //
8 // Rheolef is free software; you can redistribute it and/or modify
9 // it under the terms of the GNU General Public License as published by
10 // the Free Software Foundation; either version 2 of the License, or
11 // (at your option) any later version.
12 //
13 // Rheolef is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 // GNU General Public License for more details.
17 //
18 // You should have received a copy of the GNU General Public License
19 // along with Rheolef; if not, write to the Free Software
20 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 //
22 // =========================================================================
23 // general unassembled and nonlinear field expressions
24 // AUTHOR: Pierre.Saramito@imag.fr
25 // DATE: 6 april 1920
26 
27 namespace rheolef {
255 } // namespace rheolef
256 
257 #include "rheolef/field_concept.h"
258 #include "rheolef/space.h"
259 
260 namespace rheolef { namespace details {
261 
262 // get types in CRTP from Derived via a specialized field_traits<Derived>
263 // see https://stackoverflow.com/questions/5680263/use-curiously-recurring-template-pattern-crtp-with-additional-type-parameters
264 template<class Derived, class Sfinae = void>
266 
267 template<class Derived>
269 public:
270 
271 // no common methods yet
272 
273 protected:
274  Derived& derived() { return *static_cast< Derived*>(this); }
275  const Derived& derived() const { return *static_cast<const Derived*>(this); }
276 };
277 
278 }}// namespace rheolef::details
279 # endif /* _RHEOLEF_FIELD_LAZY_H */
const Derived & derived() const
Definition: field_lazy.h:275
This file is part of Rheolef.