On 20 Mar 2017, at 03:14, Tim Song via Boost
wrote: On Sun, Mar 19, 2017 at 10:42 PM, Gavin Lambert via Boost
wrote: If you are calling a function that returns a std::string (thus you have an rvalue temporary) and you are immediately wrapping this in a string_ref (as another temporary) and then passing this as a function parameter, AFAIK the compiler is within its rights to delete the temporary std::string prior to the call as it is not the actual parameter.
Nope. Those temporaries live until the end of the enclosing full-expression.
I thought it worth bringing to your attention that clang-tidy has a check to find misuse of string_view construction from temporaries: http://clang.llvm.org/extra/clang-tidy/checks/misc-dangling-handle.html Regards Jonathan
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost