[Development] Oslo, we have a problem</apollo 13> [char8_t]
Thiago Macieira
thiago.macieira at intel.com
Sat Jul 6 18:48:55 CEST 2019
On Saturday, 6 July 2019 11:53:13 -03 Mutz, Marc via Development wrote:
> > It can be argued that use of NULL in C++ code is more relict thing and
> > should not be
> > supported. It's also much easier to migrate code base from NULL to
> > nullptr - simple text
> > replacement is enough.
>
> 0 -> nullptr is just as simple: clang-tidy has a fixit for that.
Not to mention that C++ NULL is not exactly NULL in modern compilers
$ gcc -dM -E -include stddef.h -xc++ /dev/null | grep -w NULL
#define NULL __null
$ clang -dM -E -include stddef.h -xc++ /dev/null | grep -w NULL
#define NULL __null
This internal symbol is an internal type that has special casting properties:
it does cast to int but it also casts to pointer, such that the following code
is actually ambiguous with GCC, Clang and ICC (but not MSVC):
#include <stddef.h>
void f(const char *);
void f(int);
void g() { f(NULL); }
<https://gcc.godbolt.org/z/PTZttz>
So, no, adding an int overload will not help with NULL.
--
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel System Software Products
More information about the Development
mailing list