2017-02-16 15 views

回答

1

該標準不希望布爾轉換影響左值,所以它不允許它。

您當然可以將算術類型的左值轉換爲類型bool,但它不是通過(僅)布爾轉換完成的。將算術左值轉換爲bool是標準轉換序列,其由左值到右值轉換,後面跟着布爾轉換組成。

+0

您是否知道在bool轉換的情況下「左值到右值」背後的基本原理? – FunkyBaby

+0

@FunkyBaby是的,一致性。所有與C++有關的值相關的操作都是在rvalues * only *上完成的。當你有'int i = 42; int j = i + 1;'','i'會在'+'看到它之前經過左值到右值的轉換,因爲操作符'+'對右值操作。在C++中,所有的時間都是左值到右值的轉換。爲什麼布爾轉換是一個例外? – Angew

+0

感謝您的回答。但是在http://eel.is/c++draft/expr.add中沒有提到l/r值轉換。這裏提到了哪裏? – FunkyBaby

相關問題