How do you specialize and overload templates? When you do, how do you determine which template gets called? Try your hand at analyzing these 12 examples .
Which of the above functions are invoked by each of the following? Identify the template parameter types, where appropriate.
int i; double d; float f; complex<double> c; g( i ); // a g<int>( i ); // b g( i, i ); // c g( c ); // d g( i, f ); // e g( i, d ); // f g( c, &c ); // g g( i, &d ); // h g( &d, d ); // i g( &d ); // j g( d, &i ); // k g( &i, &i ); // l