Are fold expressions subject to short-circuiting?
In C++17, are fold expressions subject to short-circuiting when used with && or || as their operator? If so, where is this specified? Yes, fold expressions using && or || as the operator can short-circuit, subject to the usual caveat that it happens for the built-in meaning, but not for an overloaded operator function. The meaning of a fold-expression is defined in [temp.variadic]/9: The instantiation of a fold-expression produces: ((E_1 op E_2) op ... ) op E_N for a unary left fold, E_1 op ( ... op (E_N_minus_1 op E_N)) for a unary right fold, (((E op E_1) op E_2) op ... ) op E_N for a binary