default template instantiation in 1.1, how it differs from 1.0.2?

Cristian Ferretti cfs@mat.puc.cl
Fri Oct 2 19:14:00 GMT 1998


Hello,

I have been using egcs-1.0.1 (hpux-hp700) and 1.0.2 (redhat5.1-686)
for some time now, in a medium/large size c++ project.

We instantiate each template in a separate file, using the `template''
sintax for manual instantiation (automatic instantiation is EVIL :-),
or at least unusable for a large projet)

We didn't need any special flags for this (ie, no -f*templates).

But with egcs-1.1b, it seems tnhat automatic instantiation is the
default, because now i get duplicate symbols for templates, and
looking into .o's with nm i can see instantiated templates in .c's
using them but not requesting manual instantiation.

I tried ``-f-no-implicit-templates'' with egcs-1.1b, but in that case
i get undefined symbols for the virtual tables and typeinfo nodes for
all-inline templates (which were working fine with 1.0.x).

So, in what ways is the egcs-1.1b behaviour different from egcs-1.0.x
with respect to template instantiation?

Any ideas/suggestions will be highly appreciated,

-cristian

-----------------------------------------------------------------------------
Cristian Ferretti S.                            email: cfs@numero1.mat.puc.cl

Real software engineers work from 9 to 5, because that is the way the
job is described in the formal spec.  Working late would feel like
using an undocumented external procedure.



More information about the Gcc mailing list