KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am learning C++ from a background of mostly C and Java and I am curious on what is the best way to return an object in C++ without having to copy the object. From my understanding, C++11 introduced rvalue references (&&) to move data from a temporary variable (as oppose to copying). Example: std::string getStr(){ return "Hello"; } std::string &&hello = getStr(); Another way I could think of is using a shared pointer. std::tr1::shared_ptr<std::string> getStr(){ std::tr1::shared_ptr<std::string> hello(new std::string("Hello")); return hello; } auto hello = getStr(); I am thinking maybe an rvalue reference is better but I'd like a second opinion first before I use it. Which is better? Also is it recommended that fields in a class be rvalue references if they won't be set using the constructor? Example: class StringHolder{ public: std::string &&str; }; StringHolder sh; sh.str = getStr(); Thank you guys very much!
Tags (comma-separated)
Save Edits
Cancel