From: "Tim \"Zastai\" Van Holder" Newsgroups: comp.os.msdos.djgpp References: <393c50ca DOT 34140115 AT news DOT tesco DOT net> Subject: Re: Problem with DJGPP implementation of namespaces? Lines: 27 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2314.1300 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 Message-ID: <0nr65.110842$6t3.155540@afrodite.telenet-ops.be> Date: Wed, 28 Jun 2000 18:21:48 GMT NNTP-Posting-Host: 213.224.63.5 X-Complaints-To: abuse AT pandora DOT be X-Trace: afrodite.telenet-ops.be 962216508 213.224.63.5 (Wed, 28 Jun 2000 20:21:48 MET DST) NNTP-Posting-Date: Wed, 28 Jun 2000 20:21:48 MET DST Organization: Pandora-- Met vlotte tred op Internet To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Paul Bibbings wrote in message news:<393c50ca DOT 34140115 AT news DOT tesco DOT net>... > I have used the following short program to investigate in a simple > form a problem I've been having with calling isdigit() from the std > namespace in DJGPP. Okay, I am not a seasoned C++ programmer, but > there seems to be an inconsistency in the way in which DJGPP will > accept use of isdigit(). You're right, there is some inconsistency in which GCC handles the 'std' namespace. In fact, by default, it doesn't handle the 'std' namespace at all; only if the -fhonor-std flag is given will 'std' actually be used (and if you use -fhonor-std, you must also have used that flag for EVRY library used by gcc, including libgcc). I suspect there is a bug in gcc relating to this (it translates std::foo to ::foo, and using ::isdigit also fails, which it certainly shouldn't). As to why strlen DOES work, I believe strlen is a builtin for gcc 2.95 (and possibly 2.8.1 as well); see gcc/c-decl.c in the gcc sources. As such, gcc would probably ignore the namespace prefix and use its builtin instead. In any case, the usual behaviour in regular sources using C++ is to put a 'using namespace std;' after all includes, and overriding scoping when required (ie rarely). The only exception would pobably be if you have a namespace replacing may symbols from namespace std. Zastai