But it's not actually taken as a reference (with &) anywhere I see... and even if it's just internally referencing the (static) string, there shouldn't be any issue with that memory either right?

> But it's not actually taken as a reference (with &) anywhere I see...

That is effectively what is happening internally. A string_view is morally a pointer/length pair; that pointer has to be initialized somehow.

> and even if it's just internally referencing the (static) string

It's not. The function call constructs a temporary std::string from the string literal, but once that is done the contents of the temporary are entirely independent from the string literal.

string_view is something like this

    struct string_view { const char * ref; }
Where ref comes from the temporary string constructed via Sanitize("foobarbaz"). When that expression is done, the temporary string is destructed, leaving a dangling pointer.