nullptr vs __nullptr

时间:2011-11-02 09:22:05

标签: c++ c++11 c++-cli

我只是想知道为什么有两种方法来指定空指针。我一直在浏览link,但没有清楚地了解它的用途。

有人可以举出什么时候使用什么的好例子吗?

2 个答案:

答案 0 :(得分:22)

自2005年以来,C ++ / CLI语言已经有了一个nullptr关键字。当C ++ 11为C ++采用了nullptr关键字时,这就引起了一个问题。现在有两个,一个用于托管代码,另一个用于本机代码。 C ++ / CLI编译器可以编译它们。因此,当您指的是本机空指针时,必须使用__nullptr,当您指的是托管空指针时,必须使用nullptr。

仅在使用/ clr进行编译时才有意义。换句话说,编写C ++ / CLI代码。只需在C ++代码中使用plain nullptr。

答案 1 :(得分:0)

如果我正确读取它,您应该使用nullptr作为托管指针,__nullptr表示非托管指针。但是,由于nullptr可用于托管非托管指针,因此我个人认为没有理由使用__nullptr