Yes, only the second or third operand will be evaluated, the draft standard section of C ++ 5.16 [expr.cond] states:
Group conditional expressions from right to left. The first expression is contextually converted to bool (section 4). It is evaluated and, if true, the result of the conditional expression is the value of the second expression, otherwise the third expression. Only one of the second and third expressions is evaluated. Each calculation value and side effect associated with the first expression are sequenced before each value is calculated and the side effect associated with the second or third expression.
source share