C++ 为什么布尔转换明确提到prvalue

C++ 为什么布尔转换明确提到prvalue,c++,C++,在4.14 它说: 算术、非范围枚举、指针或指向的指针的prvalue 成员类型可以转换为bool类型的prvalue 为什么特别强调价值 算术类型的左值也可以转换为布尔值。标准不希望布尔值转换影响左值,因此不允许 当然,您可以将算术类型的左值转换为类型bool,但这不是通过(仅仅)布尔转换来完成的。将算术左值转换为布尔值是一个标准的转换序列,由左值到右值的转换和布尔值的转换组成。算术类型的左值也可以转换为布尔值-现在了解标准如何定义这种转换。你知道“左值到右值”背后的原理吗在布尔转换的情况下

在4.14

它说:

算术、非范围枚举、指针或指向的指针的prvalue 成员类型可以转换为bool类型的prvalue

为什么特别强调价值


算术类型的左值也可以转换为布尔值。

标准不希望布尔值转换影响左值,因此不允许


当然,您可以将算术类型的左值转换为类型
bool
,但这不是通过(仅仅)布尔转换来完成的。将算术左值转换为布尔值是一个标准的转换序列,由左值到右值的转换和布尔值的转换组成。

算术类型的左值也可以转换为布尔值-现在了解标准如何定义这种转换。你知道“左值到右值”背后的原理吗在布尔转换的情况下?@FunkyBaby是的,一致性。C++中所有与值相关的操作只在rValk上完成。当你有
inti=42;int j=i+1+
看到它之前,
i
将首先进行左值到右值的转换,因为操作符
+
对右值进行操作。LVALUE到RVALL转换在C++中一直都在发生。为什么布尔转换是个例外?谢谢你的回答。但本节未提及l/r值转换。这是在哪里提到的?@FunkyBaby看,特别是第9点,我已经看过了。那条条款不支持你的要求。