nullptr против __nullptr - PullRequest
       7

nullptr против __nullptr

12 голосов
/ 02 ноября 2011

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

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

Ответы [ 2 ]

22 голосов
/ 02 ноября 2011

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

Это относится только к факту, когда вы компилируете с / clr.Напишите C ++ / CLI-код другими словами.Просто используйте обычный nullptr в коде C ++.

0 голосов
/ 02 ноября 2011

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

...