I don't think we ever (I certainly hope so) return objects by value,
Wait, we do return std::string (it's hard for me to think of it as ab object - I see std::string and I immediately translate it into char*).