You got a bad example. Short answer: never(!) return a pointer from a binary function (operator). Return by value or a std::unique_ptr or std::shared_ptr.
Note: The accepted answer in the link of the question changed afterward.
2
solved When should I return pointer to object (not an object) from the operator function?