There are several ways to pass textual information into a function in C++: that could be a c-string/std::string, by value/by reference, lvalue/rvalue, const/mutable. C++17 adds a new class into the standard library: std::string_view. The semantics of the string_view is to provide read-only textual information without ownership. So if you need just to read a string you may use:
void read(const char*); // if you need that in a c-style function or you don't care of the size
void read(const std::string&); // if you read the string without modification in C++98 - C++14
void read(std::string_view); // if you read the string without modification in C++17
My question is if there any case when void read(const std::string&) should be preferred to void read(std::string_view) in C++17. Assume that backward compatibility is not needed.