书上看的代码:
const string *shoterString(const string &s1, const string &s2){
return s1.size() <= s2.size() ? s1 : s2;
}
auto sz = shorterString(s1,s2).size();
之前看书上有写:
1.运算符有求值顺序,大部分都没有规定求值顺序。
2.在一条形如 f() + g()*h()+j() 的表达式中,优先级规定,g()的返回值和 h()的返回值相乘,结合律规定,f()的返回值先与 g()和 h()的乘积相加,所得结果再与 j()的返回值相加,对于这些函数的调用顺序没有明确规定。
那是不是点运算符的求值顺序是从左到右?否则,假如可能先右的话,那左边都还没求出来,怎么求.size()?
在 SO 上找到一个类似的问题,但好像也没说明白,dot-operator-order-of-evaluation-in-c?
请教大佬们:D