6e562835 regressed the Windows build as the return type no longer matched in both branches for the return value type deduction. This uses a bit more compiler magic to deal with that.