On Tue, 11 Aug 2009 13:20:52 -0700, Douglas Alan wrote: > On Aug 11, 2:00 pm, Steven D'Aprano <st...@remove-this- > cybersource.com.au> wrote: > >> > test.cpp:1:1: warning: unknown escape sequence '\y' >> >> Isn't that a warning, not a fatal error? So what does temp contain? > > My "Annotated C++ Reference Manual" is packed, and surprisingly in > Stroustrup's Third Edition, there is no mention of the issue in the > entire 1,000 pages. But Microsoft to the rescue: > > If you want a backslash character to appear within a string, you > must type two backslashes (\\) > > (From http://msdn.microsoft.com/en-us/library/69ze775t.aspx)
Should I assume that Microsoft's C++ compiler treats it as an error, not a warning? Or is is this *still* undefined behaviour, and MS C++ compiler will happily compile "ab\cd" whatever it feels like? > The question of what any specific C++ does if you ignore the warning is > irrelevant, as such behavior in C++ is almost *always* undefined. Hence > the warning. So a C++ compiler which follows Python's behaviour would be behaving within the language specifications. I note that the bash shell, which claims to follow C semantics, also does what Python does: $ echo $'a s\trin\g with escapes' a s rin\g with escapes Explain to me again why we're treating underspecified C++ semantics, which may or may not do *exactly* what Python does, as if it were the One True Way of treating escape sequences? -- Steven -- http://mail.python.org/mailman/listinfo/python-list