[PATCH] setup.exe: Stop NetIO_HTTP from treating entire stream as a header
Warren Young
warren@etr-usa.com
Wed Nov 28 15:31:00 GMT 2001
Christopher Faylor wrote:
>
> References? A simple google search for 'NULL C++ deprecated' didn't
> unearth this information.
This controversy officially started with the ARM, IIRC. In it, I recall
that the authors made some comments saying that NULL should die. I
don't keep the ARM here at work any more, though, so I have no reference
to back that recollection up.
In section 5.1.1 of the more current Stroustrup 3/e he says, "Because of
C++'s tighter type checking, the use of plain 0, rather than any
suggested NULL macro, leads to fewer problems."
I don't know what problems Stroustrup is referring to. In section 18.1
of the current C++ Standard, footnote 180 says: "Possible definitions
[of NULL] include 0 and 0L, but not (void*)0." This implies that NULL
is most likely to expand to a literal 0, and not the distasteful casted
pointer you see in C compilers' standard libraries. Of course there are
old systems with NULL still defined to (void*)0, but Cygwin's g++/newlib
system isn't one of these.
Okay, "NULL" is fine to use, then. As for "0", the C++ standard
guarantees that if you use 0 in a pointer context, it will be converted
to whatever that platform uses for the "null pointer", even if it
happens not to have a bit pattern of all zeroes. (Section 4.10)
Therefore, it's safe to use 0 to mean "the null pointer".
Personally, I prefer 0 to NULL, though I leaned the other way before C++
evolved to where it is today, since the C standard did not guarantee
that 0 would convert to the null pointer. In practice, with a
conforming C++ implementation, it probably doesn't matter either way --
it's now just a style issue.
--
= ICBM Address: 36.8274040 N, 108.0204086 W, alt. 1714m
More information about the Cygwin-patches
mailing list