When expanding folding expressions, the generated code doesn't have parenthesis even though they are needed for some (most?) operators. In the example, the expression is interpreted as `(0 - (0 - 5))` which is `5`, but written on the right as `0 - 0 - 5` which is `-5`. See https://cppinsights.io/lnk?code=dGVtcGxhdGU8aW50Li4uIEludHM+CmNvbnN0ZXhwciBpbnQgZm9sZF9taW51c19pbXBsKCkgewogICAgcmV0dXJuIChJbnRzIC0gLi4uIC0gNSk7Cn0KCnRlbXBsYXRlPGludC4uLiBJbnRzPgpjb25zdGV4cHIgaW50IGZvbGRfbWludXMoKSB7CiAgICByZXR1cm4gZm9sZF9taW51c19pbXBsPDAsIEludHMuLi4+KCk7Cn0KCnN0YXRpY19hc3NlcnQoZm9sZF9taW51cygpID09IC01KTsKCnRlbXBsYXRlIDxpbnQgYj4KY2xhc3MgcHJpbnRfaW50OwoKaW50IGkgPSBmb2xkX21pbnVzPDA+KCk7CnN0YXRpY19hc3NlcnQoZm9sZF9taW51czwwPigpID09IDUpOwpzdGF0aWNfYXNzZXJ0KDAgLSAwIC0gNSA9PSAtNSk7CgovL3ByaW50X2ludDxmb2xkX21pbnVzPDA+KCk+IHA7&rev=1.0