As a general rule you don't pass by reference when:
1. parameters are POD, (float, int, long etc...)
2. when parameter is smart pointer and used inside function just to access it's owning object
In almost all other cases, you pass by either reference or const reference, depends on if you want to change parameter values or not.
Last edited on