What\'s better as default, to return a copy (1) or a reference (2) from a getter function?
class foo { public: std::string str () { // (1)
if its a small basic type - primatives like int and long and their wrappers and other basic things like 'Point' - return a copy
if its a string, or any other complex type - return a reference.