Generic Programming for the rest of us
The paradigm of Generic Programming (GP) is well known to most C++ programmers
since the introduction of the STL. GP is a might design principle for constructing maximally reusable components and libraries far beyond the scope of the STL. However, although the STL and boost components are routinely used in current C++ development projects, developing their own generic components is something many programmers shy away from, perhaps partly because GP is often confused with black template magic.
The first part of the talk will thus present the basic techniques of generic programming
using a seemingly simple example, focussing on the core concepts instead on arcane template tricks.
Once these concepts are understood, their implementation using C++ templates (or any other technique)
becomes much more comprehensible (and in C++11, is often easier then before).
The second part applies GP on the development of reusable parallel components.
Due to the sharply increasing complexity of even simple components,
this area can benefit greatly from the power of the generic approach.
Besides the "simple" examples, we look into a case study from a recent project
using GP for designing parallel versions of the algorithmic code.
Sprecher: Guntram Berti