I have two suggestions here, one is the order:
void func (int a, int b, int& result); ..or.. void func (int& result, int a, int b);
I prefer the former, since nominally you have input -> output, and not output -> input (at least in a LTR language :).
But I'd like to take it a step further and propose this format for functions with output variables:
void func (int a, int b, int* result);
Rationale: Having the output variable as a pointer makes the code more readable at the call site:
int result; func(a, b, &result);
That makes it obvious directly at the calling site, which parameters are outputs.