|
Boost Users : |
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2008-03-18 13:46:33
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
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net