From: William A. H. <bil...@ny...> - 2002-02-11 18:02:58
|
If I remove the explicit from here: //: Creates a rational from a double. // This is done by computing the continued fraction approximation for d. // Note that this is explicitly *not* an automatic type conversion. explicit vnl_rational (double d); Then this compiles: template <class T, class S> void vnl_c_vector_rms_norm(T const *p, unsigned n, S *out) { vnl_c_vector_two_norm_squared(p, n, out); *out /= n; typedef typename vnl_numeric_traits<S>::real_t real_t; *out = (S)(vcl_sqrt(real_t(*out))); // trouble is here } It would seem that for vnl_c_vector to work you need a type coversion from double here. -Bill At 12:49 PM 2/11/2002 -0500, William A. Hoffman wrote: >I am getting the following error with the borland compiler: > > >C:/Hoffman/vnl/vnl/Templates/vnl_c_vector+vnl_rational-.cxx: >Error E2015 C:/Hoffman/vnl\vnl/vnl_c_vector.txx 246: Ambiguity between 'vnl_rati >onal::vnl_rational(long,long)' and 'vnl_rational::vnl_rational(int,int)' in func >tion vnl_c_vector_rms_norm<vnl_rational,vnl_rational>(const vnl_rational *,unsig >ned int,vnl_rational *) >Error E2015 C:/Hoffman/vnl\vnl/vnl_c_vector.txx 262: Ambiguity between 'vnl_rati >onal::vnl_rational(long,long)' and 'vnl_rational::vnl_rational(int,int)' in func >tion vnl_c_vector_two_norm<vnl_rational,vnl_rational>(const vnl_rational *,unsig >ned int,vnl_rational *) >Error E2015 C:/Hoffman/vnl\vnl/vnl_c_vector.txx 37: Ambiguity between 'vnl_ratio >nal::vnl_rational(long,long)' and 'vnl_rational::vnl_rational(int,int)' in funct >ion vnl_c_vector<vnl_rational>::normalize(vnl_rational *,unsigned int) >*** 3 errors in Compile *** > >Any ideas for a fix? > >-Bill > > >_______________________________________________ >Vxl-maintainers mailing list >Vxl...@li... >https://lists.sourceforge.net/lists/listinfo/vxl-maintainers |