On Tue, Dec 29, 1998 at 08:21:43PM +0100, Wojciech Zabolotny wrote: > Hi All > > I've stated that there is no old good String class in libstdc++. > Instead I've found the "string" header which defines the "string" class. > Is it OK to use it in new C++ programs, or it is added only for > compatibility? Why has it such nonstandard name (without ".h" suffix).
>From Stroustrup: =================Section B 3.1, third edition============================= Traditionally, every header file had a .h suffix. Thus C++ implementations provided headers such as <map.h> and <iostream.h>. For compatibiilty, most still do. When the standards committee needed headers for redefined versions of standard libraries for newly added library facilities, naming those headers became a problem. Using the old .h names would have caused compatibilty problems. The solution was to drop the suffix .h in standard header names. The suffix is redundant anyway because the <> notation indicates that a standard header is being named. Thus, the standard library provides non-suffixed headers, such as <iostream> and <map>. The declarations in those fiels are placed in the namespace std. Older headers place their declarations in the global namespace and use a .h suffix. ========================================================================== So, the decision is neither arbitrary nor non-standard. The only thing left is to actually implement namespaces in gcc :) Marcus -- "Rhubarb is no Egyptian god." Debian GNU/Linux finger brinkmd@ Marcus Brinkmann http://www.debian.org master.debian.org [EMAIL PROTECTED] for public PGP Key http://homepage.ruhr-uni-bochum.de/Marcus.Brinkmann/ PGP Key ID 36E7CD09