From: Miller, J. V (Research) <mil...@cr...> - 2002-09-17 15:05:22
|
It is remarkably easy to exceed the "template depth limit". Things that can be included in the "template depth" * Template parameters that are themselves templates (dependent template parameters etc) * Nested classes that use template parameters * Ivars that use template template parameters The third one is particularly insipid. For instance, I think gcc would consider template <class T> class A { B<T> b; C<T> c; D<T> d; } to have a template depth of at least 4 (each templated ivar is considered one depth). The easiest thing to do is crank up the depth limit. > -----Original Message----- > From: Dav...@st... > [mailto:Dav...@st...] > Sent: Tuesday, September 17, 2002 10:18 AM > To: vxl...@li... > Subject: [Vxl-users] template depth problem > > > Dear VXL person, > > I get the following error report when trying to build my cxx > code under linux. This problem doesn't > occur under windows. > > I don't think my code contains "17 levels of template > instantiations" as indicated in the actual > error message. > > Do any gcc experts know what causes this error? > > Many thanks > > David > > > File: vxlsrc/vxl/vnl/vnl_vector.h Line: 118CVS > > c++ -rdynamic build_point_predictor.o > -L/work/dart/vxlbin/lib -L/work/dart/contbin/lib -lohf > -ladab -lvaam -lapmvfy -lohf -lfpf -llfr -lclsfy -lvaxm > -lvapm -lvtri -lvsml -lwvlt -lvul_io -lvul > -lvpl -lvpdfl -lmil_algo -lmil -lvil -lz -ltiff -lpng -ljpeg > -lvbl_io -lvbl -lmbl -lvnl_io > -lvnl_algo -lvnl -lnetlib -lvgl_io -lvsl -lvgl -lvcl -lm > -Wl,-rpath,/work/dart/vxlbin/lib:/work/dart/contbin/lib -o > build_point_predictor > c++ -rdynamic evaluate_edge_searcher_base_roc.o > -L/work/dart/vxlbin/lib -L/work/dart/contbin/lib > -lohf -ladab -lvaam -lapmvfy -lohf -lfpf -llfr -lclsfy -lvaxm > -lvapm -lvtri -lvsml -lwvlt -lvul_io > -lvul -lvpl -lvpdfl -lmil_algo -lmil -lvil -lz -ltiff -lpng > -ljpeg -lvbl_io -lvbl -lmbl -lvnl_io > -lvnl_algo -lvnl -lnetlib -lvgl_io -lvsl -lvgl -lvcl -lm > -Wl,-rpath,/work/dart/vxlbin/lib:/work/dart/contbin/lib -o > evaluate_edge_searcher_base_roc > /work/dart/contbin/isbe_genhyp/gapi: building default_target > /work/dart/contbin/isbe_genhyp/fmc: building default_target > c++ -Dfmc_EXPORTS -fPIC -I/work/dart/contsrc/isbe_genhyp/fmc > -I/work/dart/vxlbin/vcl > -I/work/dart/vxlbin/vxl -I/work/dart/vxlsrc/vcl > -I/work/dart/vxlsrc/vxl -I/work/dart/vxlsrc/mul > -I/work/dart/contsrc/isbe_apm > -I/work/dart/contsrc/isbe_genhyp -DVXL_WARN_DEPRECATED > -DVXL_WARN_DEPRECATED_ONCE -c > /work/dart/contsrc/isbe_genhyp/fmc/Templates/vsl_vector_io+vcl > _vector_vcl_vector_vnl_vector~-.cxx -o > Templates/vsl_vector_io+vcl_vector_vcl_vector_vnl_vector~-.o > /work/dart/vxlsrc/vxl/vnl/vnl_vector.h: In method > `vnl_vector<double>::~vnl_vector()': > /work/dart/vxlsrc/vxl/vnl/vnl_vector.h:118: template > instantiation depth exceeds maximum of 17 > /work/dart/vxlsrc/vxl/vnl/vnl_vector.h:118: (use > -ftemplate-depth-NN to increase the maximum) > /work/dart/vxlsrc/vxl/vnl/vnl_vector.h:118: instantiating > `vnl_vector<double>::destroy()' > /work/dart/vxlsrc/vxl/vnl/vnl_vector.h:118: instantiated > from `vnl_vector<double>::~vnl_vector()' > /usr/include/g++/stl_construct.h:43: instantiated from > `destroy<vnl_vector<double> > >(vnl_vector<double> *)' > /usr/include/g++/stl_construct.h:61: instantiated from > `__destroy_aux<vnl_vector<double> > *>(vnl_vector<double> *, vnl_vector<double> *, __false_type)' > /usr/include/g++/stl_construct.h:73: instantiated from > `__destroy<vnl_vector<double> *, > vnl_vector<double> >(vnl_vector<double> *, vnl_vector<double> > *, vnl_vector<double> *)' > > > > > ------------------------------------------------------- > Sponsored by: AMD - Your access to the experts on Hammer Technology! > Open Source & Linux Developers, register now for the AMD Developer > Symposium. Code: EX8664 http://www.developwithamd.com/developerlab > _______________________________________________ > Vxl-users mailing list > Vxl...@li... > https://lists.sourceforge.net/lists/listinfo/vxl-users > |