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.
const std::string& fooLvalueRefConst = bar + baz; // OK fooLvalueRefConst[0] = 'f'; // Error!