[v3] speedup numpunct cache a bit
Jerry Quinn
jlquinn@optonline.net
Mon Jun 30 02:19:00 GMT 2003
Nathan Myers writes:
> On Sat, Jun 28, 2003 at 12:17:18AM -0400, Jerry Quinn wrote:
> > Nathan Myers writes:
> > > On Fri, Jun 27, 2003 at 10:38:02PM -0400, Jerry Quinn wrote:
> > > > This moves the code for __use_cache<numpunct> to locale_facets.tcc.
> > >
> > > Making it inline is a wondrous thing, but all inlines must go in
> > > ".h" files. Everything in a .tcc file is supposed to be able to
> > > be declared "export" and not need to be seen at instantiation time,
> > > meaning (mainly) no public class declarations and no inlines.
> >
> In practice, the template definitions (more or less in source form)
> get put in the object library (along with the header definitions
> they depend on) and the templates get instantiated and compiled at
> what we are used to thinking of as link time. The purpose is to
> minimize the amount of stuff that has to be #included, and to allow
> changes to the .tcc files, and the library they appear in, without
> recompiling .o files that don't need to know about implementations.
>
> > __use_cache is only being used within the .tcc file. Does it still
> > have to be in the .h? Why doesn't this apply to std::use_facet and
> > std::has_facet - or should it?
>
> My mistake. If it's used only in the .tcc file, then it only need
> be declared/defined there, inline or no. use_facet<> and has_facet<>
> should not be in the .tcc file. If they are (I haven't looked),
> that's something to fix.
Umm, so is this approved?
Jerry
More information about the Libstdc++
mailing list