```
template<typename U, typename T, typename binary_functor>
struct template_param_swap
{
binary_functor<U, T> func1; #1
binary_functor<T, U> fun2; #2
};
```

CH3 of modern c++ design may solve this, but I am not a template

wizard and don't have the ability to make it yet.

template template parameter could make #1 become possible

but not #2

How could I make this become possible?Thanks