From: Chris Croughton Newsgroups: comp.os.msdos.djgpp Subject: Re: DJ port of GCC 2.8.0? Date: Thu, 15 Jan 1998 16:01:17 +0100 Message-ID: <34BE24BD.237C@amc.de> References: <69jo07$sqi$1 AT galileo DOT ticon DOT net> NNTP-Posting-Host: bob.bob.bofh.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Lines: 78 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk Sopwith Messerschmidt wrote: > If he does, what new goodies can we look forward to in the new > distribution? The ones in the GCC 2.8.0 release, which include: *** Changes since G++ version 2.7.2: * A public review copy of the December 1996 Draft of the ANSI/ISO C++ proto-standard is now available. See http://www.cygnus.com/misc/wp/ for more information. * g++ now uses a new implementation of templates. The basic idea is that now templates are minimally parsed when seen and then expanded later. This allows conformant early name binding and instantiation controls, since instantiations no longer have to go through the parser. What you get: + Inlining of template functions works without any extra effort or modifications. + Instantiations of class templates and methods defined in the class body are deferred until they are actually needed (unless -fexternal-templates is specified). + Nested types in class templates work. + Static data member templates work. + Member function templates are now supported. + Partial specialization of class templates is now supported. + Explicit specification of template parameters to function templates is now supported. Still not supported: + Member class templates. + Template template parameters. + Template friends. * Exception handling support has been significantly improved and is on by default. This can result in significant runtime overhead. You can turn it off with -fno-exceptions. * RTTI support has been rewritten to work properly and is now on by default. This means code that uses virtual functions will have a modest space overhead. You can use the -fno-rtti flag to disable RTTI support. New features for Intel x86 family: Add scheduling parameters for Pentium and Pentium Pro. However, C++ namespaces are still not supported. The big difference is that if you try to use them you get an error message: 1.cc:4: sorry, not implemented: namespace 1.cc:19: sorry, not implemented: using directive instead of the compiler crashing (this is an improvement of a kind - at least it lets you know instead of sending in bug reports). Will it be worth it? Well, the exception support probably will be worth it for some people (me, definitely). I don't know anyone using RTTI (that's a GCC extension to allow a parameter to be passed anonymously to a function which determines its type at runtime). And the lack of namespaces is a disappointment but not unexpected (it was never promised for this release; I suspect after the C++ standard is finalised they'll put it in). Chris C