Ugh. Well, what I can think of at the moment:
- Use the Boost.Preprocessor library to specialize each arity of lfCall, e.g., generate
template< class R, class T0 >
struct lfCall< R ( T0 ) > { /*...*/ R call(T0) { /*...*/ } };
and similarly for all other supported arities with the preprocessor; or
- If you're flexible in the call interface, you might be able to utilize Boost.Fusion's fuse/unfuse adaptors [1].
- Jeff
http://www.boost.org/doc/libs/1_48_0/libs/fusion/doc/html/fusion/functional/adapters.html