On Friday 05 December 2003 10:09, Tanner Lovelace wrote: > Mike Mueller wrote: > > On Thursday 04 December 2003 16:13, Tanner Lovelace wrote: > >>The STL is somewhat unique in that you don't compile it. Because of how > >>templates work with most compilers, the STL is supplied entirely as > >>header files. > > > > Templates have no compilable meaning until supplied with concrete data > > types in a particular instance, so they must always be a header file. > > How could it be otherwise - especially if the datatype is user defined? > > That wasn't always the case. Also, some compilers will let you > define certain types to be precompiled. I.e. if you know that > your template will be often used with int's you could precompile that > part and therefore save some compile time. Also, I believe some > compilers used to compile to an intermediate representation that > was between source code and actual object code. The advantage of > this would also be faster compilation.
That makes sense. My files that use STL have a noticeably slower compile time. I have a strong memory of the afternoon when the typical nature of templates became suddenly clear to me. Prior to that event I was thinking of the STL containers as precompiled objects I would link. The compiler error messages I was getting were maddeningly abtruse (as most STL related compiler error messages are). I spent zero time writing my own templates before using STL in grand fashion, so I might be forgiven this temporary yet egregious void in my understanding of templates. -- Mike Mueller 324881 (08/20/2003) Make clockwise circles with your right foot. Now use your right hand to draw the number "6" in the air. -- TriLUG mailing list : http://www.trilug.org/mailman/listinfo/trilug TriLUG Organizational FAQ : http://trilug.org/faq/ TriLUG Member Services FAQ : http://members.trilug.org/services_faq/ TriLUG PGP Keyring : http://trilug.org/~chrish/trilug.asc
