Some words on the C++ implementation

If one takes a look at the goals and features section it soon becomes obvious that these goals cannot be achieved using trivial C++ features only.

We make heavy use of templates, (partial) template specialization, generative and generic programming, and the STL. This may be a challenge for you as well as for your compiler, as these are quite late features of the C++ language.

While knowledge of generative programming is only necessary if you want to create your own mesh kernels or extend iterators or similar types, you will NOT need it for simply using these things. Nevertheless working knowledge of C++ and basic knowlege of templates is required. To get into this stuff we recommend the following books:

- Bjarne Stroustrup, The C++ Programming Language ,

- Matthew H. Austern, Generic Programming and the STL: Using and Extending the C++ Standard Template Library ,

- Andrei Alexandrescu, Modern C++ Design: Generic Programming and Design Patterns Applied ,

- Krzysztof Czarnecki, Ulrich Eisenecker, Generative Programming: Methods, Tools, and Applications .