2015-05-11 41 views

回答

2

參考文件: https://msdn.microsoft.com/en-us/library/tf4dy80a.aspx

當一個後綴或前綴++運算符應用於 bool類型的變量,該變量被設置爲真。後綴或前綴 - 運算符 不能應用於此類型的變量。

+2

這個答案沒有解決這個問題:爲什麼? – Lii

+2

@Lii在某種意義上它確實......「你不能」,因爲文檔說你不能。 :) –

+1

@Lii按設計。 – Jerry

2

從操作數對象的標準5.2.6.1

值由 加1,除非對象是布爾類型,在這種情況下,它被設置爲true的修改。 [注:使用已過時, 見附件D.就要收注]

而且5.2.6.2重點煤礦

後綴的操作 - 類似於遞減到後綴++運算符,,除了操作數 不應該是bool類型。 [注意:前綴增量和減量請參見5.3.2。末端音符]

和附錄d

用布爾操作數D.1遞增運算符[depr.incr.bool] 1 ++運算符使用bool類型的操作數是棄用(見5.3.2和5.2.6)。

所以反過來說你不能這樣做的原因是因爲它違背了標準。