Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Как реализовать nullptr при стандарте c++ 98?

Программирование+2
Петр Гавриков
  ·   · 2,3 K

Ни разу не писатель и 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 и вроде бы работает.