The problem is that the compiler can't use Koenig Lookup to figure out the type you need since you have no argument; if the function took an argument of type 'T' (or something that uses it, like 'vector <T>'), then the compiler could find out what type you need. Since you have no argument, you need to be explicit with the type in the call:
Code:
makeTable <double> ();
.
FYI: if you DO have an argument, but it can't be used to deduce ALL template parameters, such as
Code:
template <class A, class B> void Function(const A&);
place the deducible template arguments first, and those not deducible last. Then call the function like this:
Code:
char arg;
Function <int> (arg);
The compiler will know 'A' is 'char' and you tell it that 'B' is 'int'.
ta0kira