2013-01-16 79 views
3

是它在C++ 11寫入仍然有效和良好的做法,如果像子句C++ 11和如果(整數)

int i; 
//some code 
if (i) //some code 

或優選寫

if(i != 0) 
+4

爲什麼不那麼明確,如果你能幫上忙就不那麼明瞭?特別是在很少的情況下。 –

+1

@GrantThomas:如果整數是一個指針或持有一個指針值,如果(i)是if(i!= nullptr)的通用速記,即如果i「存在」。在這種情況下,我認爲速記實際上比長形式更爲抽象和直觀。然而,我同意在其他99%的案例中,這不是理想的形式 - 更好地更明確。 –

+1

最終C++ 11在這方面沒有任何改變。無論您以前有什麼好的理由,都要出於同樣的原因繼續使用。 –

回答

4

它是明確的行爲,所以你可以使用較短的表達式。對於一個沒有經驗的開發人員來說,這似乎很模糊,但常客在理解時不應該有任何問題。

當明確地將i作爲數字處理時,使用較長的形式可能會有一些意義,並且在具有其他邏輯含義時將其省略。

0

它是有效使用積分POD類型作爲條件表達式。

我不認爲在C++ 11中有任何要求使用另一種風格。

因此,選擇你喜歡的風格。