
AMDG Emil Dotchevski wrote:
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?
So to be clear given the sequence int, long, you'd like to generate func()(int(), int(), int()); func()(int(), int(), long()); func()(int(), long(), int()); func()(int(), long(), long()); func()(long(), int(), int()); func()(long(), int(), long()); func()(long(), long(), int()); func()(long(), long(), long()); In Christ, Steven Watanabe