Does D have an equivalent to C++ nullptr_t?

ambiguity, d, null

Solution

void func(typeof(null)) {}

The null literal is a special type in D, which you can specifically get with the `typeof` operator.

Note that this will only catch a `null` literal - it will not catch a null Object or null pointer variable.

Problem

in C++, I can do this: ``` void func(void *something) { cout << "something" << endl; } void func(nullptr_t) { cout << "nullptr_t" << endl; } int main() { int nothing = 5; func(&nothing); func(nullptr); return 0; } ``` which outputs: something nullptr_t so I can special case nullptr_t. In D, I have two functions: ``` void func(void* pod) { cout << "pod" << endl; } void func(Object obj) { cout << "Object" << endl; } ``` So how do I resolve the ambiguity when calling `func(null)`?

Original source