Test Drive 3 - disambiguate overloads
void TestFunction (int i); // overload prototype
int main()
{
// Functor<void, TYPELIST_2(int, double)> cmd(TestFunction); ambiguous
typedef void (*TpFun)(int, double); // convenience defn of TpFun
// method 1: assignment
TpFun pF = TestFunction;
Functor<void, TYPELIST_2(int, double)> cmd1(pF);
cmd1(4, 4.5);
// method 2: cast
Functor<void, TYPELIST_2(int, double)> cmd2(static_cast<TpFun>(TestFunction));
cmd2(4, 4.5);
}