template question
Alexander Sieb
sieb@sscd.de
Wed Dec 4 09:24:00 GMT 2002
Zoltan Nagy wrote:
>
> Hi,
>
> I tried to compile the small code below using the g++-3.2.1 but I got
> the following error message:
>
> test.cc: In member function `void C<TTT>::ff() [with TTT = double]':
> test.cc:31: instantiated from here
> test.cc:20: no matching function for call to `A<double>::f(B<const
> double&, double>&, double&)'
>
> Is it a bug in the compiler or I do something wrong?
>
Seems like T1 is ambiguous.
template<class T1, class T2>
void f(const B<T1,T2>&, T1){}
^^ ^^
|| ||
const double& from b. double from function call
||
\/
What should T1 really be?
In b you define what becomes T1 as const double& while in the member function call
the second parameter is double. T1 cannot be both at the same time.
--
Regards,
Alexander
More information about the Gcc
mailing list