Note, however, that the C++ compiler's value-copying default is not always what you want. In particular, some functions involve a pass-through object: an object that is handed to the function via a call-by-reference parameter, without copying, and is to be returned as the function's value, also without copying.