#import, #pragma once yadda yadda mumble grumble

Jonathan Lennox lennox@cs.columbia.edu
Wed Jul 30 00:40:00 GMT 2003

Neil Booth writes:
> I hope this puts past endless discussions to rest at last.

I hope so too, but I have a few questions about semantics of #import /
#pragma once (which have always been the matter of much debate).

1) What definition of "the same file" are you using?  When you say you "it
doesn't second-guess the filesystem", do you mean that the rule is just
"same absolute path, before any link or .. resolution"?  There are cases
where that would break, but they would -- arguably -- deserve to be broken.

2) What happens if you mix #include and #import of the same file?

3) If you  #import a file to a PCH file, and then later use the PCH file and
also re-#import the file outside of the PCH file, what happens?  What if
it's on another host?  (This could definitely fall into the category of
"deserves to break".)

These cases should probably be documented in the CPP manual (even if it's
just to explicitly make some behavior undefined).

Jonathan Lennox
lennox at cs dot columbia dot edu

More information about the Gcc mailing list