[ Note: Clause 5 defines the syntax, order of evaluation, and meaning of expressions.58 An expression is a
sequence of operators and operands that specifies a computation. An expression can result in a value and
can cause side effects. — end note ]
The value of a condition that is an initialized declaration in a statement other than a switch statement is the value of the declared variable contextually converted to bool
并不是表达式逻辑,而且即便if里写的是表达式也不是普通的表达式逻辑,还有一个隐式的bool显示转换(…)
2
本人在想,是又怎么样,不是又怎么样,何编程有卵的关系吗
2
有没有把这个隐式转换显式化的方法呢?这样是非法的:
int b = 5;
if (static_cast<bool>(auto a = b)) {
}
2
最新c++表示233,可以这么写:
if(auto a = b) {
}
The value of a condition that is an initialized declaration in a statement other than a switch statement is the value of the declared variable contextually converted to bool
并不是表达式逻辑,而且即便if里写的是表达式也不是普通的表达式逻辑,还有一个隐式的bool显示转换(…)
有没有把这个隐式转换显式化的方法呢?这样是非法的:
int b = 5;
if (static_cast<bool>(auto a = b)) {
}
不知道,至少想不到有这种需求的场景。上下文已经有显式需要bool的语义了。
2
最新c++表示233,可以这么写:
if(auto a = b) {
}
The value of a condition that is an initialized declaration in a statement other than a switch statement is the value of the declared variable contextually converted to bool
并不是表达式逻辑,而且即便if里写的是表达式也不是普通的表达式逻辑,还有一个隐式的bool显示转换(…)
有没有把这个隐式转换显式化的方法呢?这样是非法的:
int b = 5;
if (static_cast<bool>(auto a = b)) {
}
不知道,至少想不到有这种需求的场景。上下文已经有显式需要bool的语义了。
有时候就有:if((auto a = b) && (auto c = d))
但就如本帖子讨论的主题一样,这不是表达式,所以这个非法语句, 然后就要分成三行写….有点蛋疼
2
最新c++表示233,可以这么写:
if(auto a = b) {
}
The value of a condition that is an initialized declaration in a statement other than a switch statement is the value of the declared variable contextually converted to bool
并不是表达式逻辑,而且即便if里写的是表达式也不是普通的表达式逻辑,还有一个隐式的bool显示转换(…)
有没有把这个隐式转换显式化的方法呢?这样是非法的:
int b = 5;
if (static_cast<bool>(auto a = b)) {
}
不知道,至少想不到有这种需求的场景。上下文已经有显式需要bool的语义了。
有时候就有:if((auto a = b) && (auto c = d))
但就如本帖子讨论的主题一样,这不是表达式,所以这个非法语句, 然后就要分成三行写….有点蛋疼