Подтвердить что ты не робот

Nullptr vs __nullptr

Мне просто интересно, почему есть два способа указать нулевой указатель. Я прошел через ссылку , но не получил ясного понимания ее использования.

Может ли кто-нибудь дать хороший пример того, когда использовать что?

4b9b3361

Ответ 1

Язык С++/CLI уже имел ключевое слово nullptr с 2005 года. Это вызвало проблему, когда С++ 11 применил ключевое слово nullptr для С++. Теперь есть два, один для управляемого кода и другой для собственного кода. Компилятор С++/CLI может скомпилировать оба. Поэтому вы должны использовать __nullptr, когда вы имеете в виду собственный нулевой указатель, nullptr, когда вы имеете в виду управляемый нулевой указатель.

Это актуально только при компиляции с /clr. Напишите код С++/CLI другими словами. Просто используйте простой nullptr в коде С++.

Ответ 2

Если я прочитал его правильно, вы должны использовать nullptr для управляемых указателей и __nullptr для неуправляемого указателя. Однако, поскольку nullptr может использоваться как для управляемого неуправляемого указателя, я лично не вижу причины использовать __nullptr.