# Using Output Parameters

suggest changeParameters can be used for returning one or more values; those parameters are required to be non-`const`

pointers or references.

References:

void calculate(int a, int b, int& c, int& d, int& e, int& f) { c = a + b; d = a - b; e = a * b; f = a / b; }

Pointers:

void calculate(int a, int b, int* c, int* d, int* e, int* f) { *c = a + b; *d = a - b; *e = a * b; *f = a / b; }

Some libraries or frameworks use an empty ‘OUT’ `#define`

to make it abundantly obvious which parameters are output parameters in the function signature. This has no functional impact, and will be compiled out, but makes the function signature a bit clearer;

#define OUT void calculate(int a, int b, OUT int& c) { c = a + b; }

Found a mistake? Have a question or improvement idea?
Let me know.

Table Of Contents