template<template<class, class> class Eq>
walker::registerDiffEq struct

Function object for registering a differential equation into the differential equation factory.

This functor is repeatedly called by brigand's cartesian_product, sweeping all combinations of the differential equation policies. The purpose of template template is to simplify client code as that will not have to specify the template arguments of the template argument (the policies of Eq), since we can figure it out here. See also http://stackoverflow.com/a/214900

Constructors, destructors, conversion operators

registerDiffEq(DiffEqFactory& f, ctr::DiffEqType t, std::set<ctr::DiffEqType>& eqTypes) explicit
Constructor, also count number of unique equation types registered.

Public functions

template<typename U>
void operator()(brigand::type_<U>)
Function call operator called with tk::cartesian_product for each unique sequence of policy combinations.

Public variables

DiffEqFactory& factory
Need to store the reference to factory we are registering into.
const ctr::DiffEqType type
Need to store which differential equation we are registering.