Мне просто интересно, почему есть два способа указать нулевой указатель. Я прошел через ссылку , но не получил ясного понимания ее использования.
Может ли кто-нибудь дать хороший пример того, когда использовать что?
Ответ 1
Язык С++/CLI уже имел ключевое слово nullptr с 2005 года. Это вызвало проблему, когда С++ 11 применил ключевое слово nullptr для С++. Теперь есть два, один для управляемого кода и другой для собственного кода. Компилятор С++/CLI может скомпилировать оба. Поэтому вы должны использовать __nullptr, когда вы имеете в виду собственный нулевой указатель, nullptr, когда вы имеете в виду управляемый нулевой указатель.
Это актуально только при компиляции с /clr. Напишите код С++/CLI другими словами. Просто используйте простой nullptr в коде С++.
Ответ 2
Если я прочитал его правильно, вы должны использовать nullptr для управляемых указателей и __nullptr для неуправляемого указателя. Однако, поскольку nullptr может использоваться как для управляемого неуправляемого указателя, я лично не вижу причины использовать __nullptr.