在 C++11 之前,我们知道运算符需要短路和求值顺序,&&
因为:
1.9.18
在以下表达式的评估中
a && b a || b a ? b : c a , b
使用这些表达式中运算符的内置含义,在对第一个表达式(12) 求值之后有一个序列点。
但是 C++11 中不再存在序列点,那么标准部分在哪里说:
if (ptr && ptr->do_something())
{
}
是安全的?
在 C++11 之前,我们知道运算符需要短路和求值顺序,&&
因为:
1.9.18
在以下表达式的评估中
a && b a || b a ? b : c a , b
使用这些表达式中运算符的内置含义,在对第一个表达式(12) 求值之后有一个序列点。
但是 C++11 中不再存在序列点,那么标准部分在哪里说:
if (ptr && ptr->do_something())
{
}
是安全的?