From: Mark Rodgers (mark.rodgers_at_[hidden])
Date: 2002-07-20 15:52:46
From: "Noel Yap" <yap_noel_at_[hidden]>
> >From what I understand from _C: A Complete Reference_,
> the standard differentiates between the two so that
> #include <stdio.h> will work even on systems where
> stdio.h is an invalid filename. Can anyone confirm
I don't think that's really true. 16.2/5 says
"The mapping between the delimited sequence and the
external source file name is implementation-defined."
It is talking about both h-char-sequences (inside <>)
and q-char-sequences (inside ""), so #include "foo.h"
can also be defined by the implementation to map to a
source file any way it likes, as long as it follows the
rest of 16.2/5. I think that is trying to say that the
implementation must provide a *unique* mapping for a
sequence of nondigits followed by a period and another
single nondigit, but doesn't have to provide a unique
mapping (or perhaps any mapping) for other sequences.
So I think it means #include "foo.h" and #include "bar.h"
must map to different source files, but #include "foo.hpp"
and #include "foo.hxx" are allowed to map to the same file
(maybe they're both foo.h) or might not map to anything.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk