Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #81666

Re: NULL versus 0

From Keith Thompson <Keith.S.Thompson+u@gmail.com>
Newsgroups comp.lang.c++
Subject Re: NULL versus 0
Date 2021-09-28 20:34 -0700
Organization None to speak of
Message-ID <87y27ghx5w.fsf@nosuchdomain.example.com> (permalink)
References (3 earlier) <aAV3J.57544$2Q_3.32321@fx35.iad> <87a6jzlmu6.fsf@nosuchdomain.example.com> <tcX3J.71792$VZ1.29839@fx08.iad> <871r5bkn9d.fsf@nosuchdomain.example.com> <MbQ4J.17929$d82.7537@fx21.iad>

Show all headers | View raw


Branimir Maksimovic <branimir.maksimovic@gmail.com> writes:
> On 2021-09-26, Keith Thompson <Keith.S.Thompson+u@gmail.com> wrote:
>> Branimir Maksimovic <branimir.maksimovic@gmail.com> writes:
>>> On 2021-09-26, Keith Thompson <Keith.S.Thompson+u@gmail.com> wrote:
>>>>> #define NULL (void*)0 
>>>>> simple, problem is that in C++, one have to cast from void
>>>>> and that does not works, and this is BuG in C++.
>>>>
>>>> That's not a valid definition of NULL in either C or C++.
>>>>
>>>> In C or C++, the definition has to be parenthesized to avoid parsing
>>>> errors in some contexts;
>>>>
>>>>     #define NULL ((void*0)
>>>>
>>>> I'm not sure what you mean by "this is BuG in C++".  A C++
>>>> implementation that defined NULL that way would be non-conforming.
>>>>
>>> Exactly, that is why it is Bug.
>>> Thanks for correction, BTW.
>>
>> To be clear, you're saying that if any C++ implementation actually
>> defined NULL that way, it would be a bug in that implementation.
>> That's true, but I'm not aware of any implementation that actually
>> has that hypothetical bug.  It can require some trivial extra work
>> for an implementation that shares headers between C and C++, but
>> implementers are well aware of the issue.
>>
> We have problem off overoading resolution then with constant zero.
> Still, despite nullptr. You  can accidentally mean 0 the integer
> and have overload with pointer argument, and hav COMPILER BUG.
> This should be corrected in future standard...

I don't know what "COMPILER BUG" you're talking about.

Using 0 as a null pointer constant in the presence of overloaded
functions can lead to a *programming* bug.  I'm not aware of any C++
compiler that has a bug in this area (i.e., handles it in a way that's
inconsistent with what the language requires).

That kind of programming bug can be avoided by using nullptr rather than
0 (something that wasn't possible before C++11).

If you're suggesting changing the language so that 0 is no longer a null
pointer constant, that would break tons of existing code.

Programming bugs, compiler bugs, and language bugs are three very
different things.

-- 
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
Working, but not speaking, for Philips
void Void(void) { Void(); } /* The recursive call of the void */

Back to comp.lang.c++ | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

NULL versus 0 "das...@gmail.com" <dashley@gmail.com> - 2021-09-25 11:03 -0700
  Re: NULL versus 0 Branimir Maksimovic <branimir.maksimovic@gmail.com> - 2021-09-25 18:16 +0000
  Re: NULL versus 0 Paavo Helde <myfirstname@osa.pri.ee> - 2021-09-25 21:20 +0300
    Re: NULL versus 0 Paavo Helde <myfirstname@osa.pri.ee> - 2021-09-25 21:32 +0300
      Re: NULL versus 0 "das...@gmail.com" <dashley@gmail.com> - 2021-09-25 12:08 -0700
    Re: NULL versus 0 Juha Nieminen <nospam@thanks.invalid> - 2021-09-27 05:47 +0000
      Re: NULL versus 0 Bo Persson <bo@bo-persson.se> - 2021-09-27 08:32 +0200
        Re: NULL versus 0 "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2021-09-26 23:37 -0700
        Re: NULL versus 0 "Alf P. Steinbach" <alf.p.steinbach@gmail.com> - 2021-09-27 10:32 +0200
          Re: NULL versus 0 Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-09-27 11:32 -0700
      Re: NULL versus 0 James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-09-27 15:03 -0400
  Re: NULL versus 0 "see.my....@gmail.com" <see.my.homepage@gmail.com> - 2021-09-25 13:05 -0700
    Re: NULL versus 0 Jorgen Grahn <grahn+nntp@snipabacken.se> - 2021-09-26 06:58 +0000
      Re: NULL versus 0 Branimir Maksimovic <branimir.maksimovic@gmail.com> - 2021-09-26 07:47 +0000
        Re: NULL versus 0 Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-09-26 02:15 -0700
          Re: NULL versus 0 Branimir Maksimovic <branimir.maksimovic@gmail.com> - 2021-09-26 09:38 +0000
            Re: NULL versus 0 Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-09-26 15:03 -0700
              Re: NULL versus 0 Branimir Maksimovic <branimir.maksimovic@gmail.com> - 2021-09-29 02:29 +0000
                Re: NULL versus 0 Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-09-28 20:34 -0700
                Re: NULL versus 0 David Brown <david.brown@hesbynett.no> - 2021-09-29 08:52 +0200
        Re: NULL versus 0 Bo Persson <bo@bo-persson.se> - 2021-09-26 13:54 +0200
          Re: NULL versus 0 Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-09-26 15:17 -0700
          Re: NULL versus 0 Branimir Maksimovic <branimir.maksimovic@gmail.com> - 2021-09-29 02:26 +0000
      Re: NULL versus 0 Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-09-26 02:17 -0700
      Re: NULL versus 0 HorseyWorsey@the_stables.com - 2021-09-26 14:20 +0000
  Re: NULL versus 0 James Kuyper <jameskuyper@alumni.caltech.edu> - 2021-09-25 17:36 -0400
  Re: NULL versus 0 "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2021-09-26 23:05 -0700

csiph-web