
Let's say I have a class template functor like this: struct func { typedef void result_type; template <class A1,class A2,class A3> void operator()( A1, A2, A3, int x ) { } }; Given a list of types, I want the function instantiated and called for all permutations of the types in the list; the additional argument(s), x, just need to be forwarded the same for all instances. Actually I got it working, see http://codepad.org/tnYTy9Iw. I don't think that my solution is very good though. First, it has some run-time overhead due to the use of boost::bind in fwd1 and fwd2 (see link above.) Second, I'd like the macro that defines the type list not to be hard-coded in fwd1 and fwd2. Is this possible? Emil Dotchevski Reverge Studios, Inc. http://www.revergestudios.com/reblog/index.php?n=ReCode