Builtins in `std'
Fergus Henderson
fjh@cs.mu.oz.au
Wed May 23 11:05:00 GMT 2001
On 23-May-2001, Jakub Jelinek <jakub@redhat.com> wrote:
> On Wed, May 23, 2001 at 09:55:31AM -0700, Mark Mitchell wrote:
> > In C++, there is no such standard function as `::strchr', and it would
> > be wrong to optimize it specially. A user program like:
>
> But the C++ standard includes implicitely ISO C standard which defines what
> strchr does.
The C++ standard explicitly includes (by reference) parts of the ISO C
standard. However, in C++ the C standard library functions are not
defined in global scope, they are instead defined in namespace std.
See the quote below.
It is true that the C++ standard allows the implementation to optimize
`::strchr' specially, but this is because C standard library function
names are reserved for the implementation by the relevant part of the
C++ standard (see my earlier post), not directly because the C standard
defines strchr.
Cheers,
Fergus.
| 17.4.1.1 - Library contents [lib.contents]
...
| -4- Except as noted in [...]
| the contents of each header cname shall be the same
| as that of the corresponding header name.h, as specified in ISO/IEC
| 9899:1990 Programming Languages C (Clause 7), or ISO/IEC:1990
| Programming Languages --- C AMENDMENT 1: C Integrity, (Clause 7), as
| appropriate, as if by inclusion. In the C++ Standard Library, however,
| the declarations and definitions (except for names which are defined
| as macros in C) are within namespace scope (basic.scope.namespace) of
| the namespace std.
--
Fergus Henderson <fjh@cs.mu.oz.au> | "I have always known that the pursuit
| of excellence is a lethal habit"
WWW: < http://www.cs.mu.oz.au/~fjh > | -- the last words of T. S. Garp.
More information about the Gcc
mailing list