While reading N3951 it occurred to me that typedef<T> and typename<T>, where T is identifier of overloaded function, gives non described behavior
should it be same error as using &T (where T is same function identifier), or other behavior?
example:
int foo_int ( int val ) { return val + 1 ; }
int foo_int () { return 0; }
void test()
{
auto mytuple = make_tuple( typedef<foo_int>... ) ;
vector<string> names{ typename<foo_int>... } ;
}