bar + baz creates a temporary std::string, the const std::string& member parameter binds to that temporary, and then that temporary is copied to Foo::member.
std::string&& fooRvalueRef = bar + baz; // OK fooRvalueRef[0] = 'f'; // OK Cool.