> Third question: I say in principle because I am stuck here. For
> example how can I implement a named parameter bind? It seems to me
> that I am close to achieving this but I don't know exactly how. What I
> want is some kind of "bind<H, q>(3.0)" which is a function object that
> effectively evaluates to H( pvalue, 3.0) or to
> H(make_map<p>(pvariable), 3.0) when calling bind<H, q>(3.0)(pvalue) or
> bind<H, q>(3.0)(make_map<p>(pvalue)). Note that the most general case
> is something that defines partial parameters by a map
> //if H had four parameters:
> auto b = my::bind<H, set<q1, q2> >( make_map<q1, q2>(3.0, 4.0) ) ;
> // or my::make_bind<H>( make_map<q1, q2>(3.0, 4.0) )
> // and then use it as
> b(make_map<p1, p2>(5.0,6.0));

I do not understand that.
There is a bind example in libs/fusion/example/cookbook/do_the_bind.cpp
. Proto might be more helpful here, though.

do_the_bind seem to be what I am looking for except that the bind is done by placeholder number instead of key (named parameter)
in any case I couldn't go far because the do_the_bind.cpp doesn't compile for me (attached is the error message).