Ни разу не писатель и C++ не владею. Но ответить решил, ибо самому стало интересно.
Первое, что пришло в голову — это #define nullptr_t NULL. Ну а что, NULL ведь тоже нулевой указатель, разве нет?
Через 14 секунд в гугле я понял, что глубоко ошибся. Потому что NULL лёгким движением руки мистера Компилятора превращается в 0, ведь NULL есть (void *)0 ещё с семидесятых годов. Да и на nullptr_t не обратил внимание.
В общем, нашёл я на StackOverflow ответ и какую-то ссылку (не читал, но одобряю), и ответ напросился в виде такого заголовочного файла. Для проверки этого начиркал такую «программу».
Во-первых, украл. Во-вторых, проверка стандарта упоротая, но как смог нагуглить. В-третьих, пример обоссан. Но на GCC 7.1.1 всё прекрасно компилируется и с -std=c++11, и с -std=c++98 и вроде бы работает.