
18 Mar
2008
18 Mar
'08
5:46 p.m.
AMDG Hicham Mouline wrote:
hi,
I have a template function <typename cT, typename tT, int n> { .... double array[n];
if (n==2) binomial code else if (n==3) trinomial code (array[0] array[1] array[2]) else ....
compiler tries to compile the "trinomial code" code even when the template is instantiated with n=2, and that gives warnings because of array[2]
Is there a way to make the compiler ignore the non-binomial code ? rds,
You'll have to split it out into a separate function and use template specialization/overload resolution. template<int n> void do_n_specific_code(double (&array)[n]); template<typename cT, typename tT, int n> void f() { double array[n]; do_n_specific_code(array); } In Christ, Steven Watanabe