我們的項目使用C++ 11/14,並且我們希望使用nullptr
而不是0
或NULL
帶指針,即使0
(作爲整數字面量)是允許的。哪個Clang警告等同於來自GCC的Wzero-as-null-pointer-constant?
我有以下代碼:
int main()
{
int *ptr1 = nullptr; // #1
int *ptr2 = 0; // #2
}
如果我與海灣合作委員會(5.3.0)和#2
旗-Wzero-as-null-pointer-constant
它警告編譯,但我無法找到鏘類似的標誌。如果我用Clang(3.7.1)和國旗-Weverything
編譯代碼,我沒有收到關於#2
的任何警告。
那麼,有沒有辦法在Clang中得到類似的警告?
這比這更糟糕。在C++中,您可以使用任何整數常量表達式評估爲零,而不僅僅是文字...例如。 '!!!!! 1'。 – 6502
@ 6502我認爲這是C++ 98中的行爲,但C++ 14似乎改變了這一點。看到這[回答](http://stackoverflow.com/a/33656869/2484624)。如果我理解正確,'!!!!! 1'是一個整型常量表達式(它的計算結果爲false),而不是一個整型文字。 – Daniel
IIRC clang實際上帶有一個工具,用'nullptr'自動替換舊的空指針常量。 –