Well, ret will have a value of mystring after MyFunc(). In case of returning the result by value a temporary object is constructed by copying the local one.
As for me, there are some interesting details about the topic in these sections of C++ FAQ Lite.