--- Comment #39 from pinskia at gcc dot gnu dot org 2008-12-07 01:01
---
From JSM in PR 38433:
On Sat, 6 Dec 2008, eric dot niebler at gmail dot com wrote:
In the attached file, there is a comment terminated with a line-termination
character (\) followed by spaces. This should NOT be considered a line
terminator, yet gcc considers it as such. From 2.1/2 in the C++03 standard:
Each instance of a new-line character and an immediately preceding backslash
character is deleted, splicing physical source lines to form logical source
lines.
This (removal of such spaces) is part of how GCC defines the
implementation-defined mapping in translation phase 1. There are no input
files that GCC interprets as representing a program that enters phase 2
with backslash-space at the end of a line.
That is, only backslashes immediately followed by a newline are considered
line
terminators. The existing behavior of gcc violates the standard and conflicts
with the behavior of other popular C++ compilers (EDG, MSVC).
No, it conforms to the standard but does not allow certain programs to be
represented. (I think this is a bad idea, but that's another matter.)
--- CUT ---
Which explains why this is conforming to the standard and is allowed.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8270