00 //
01 // Demonstrates/motivates stringviews
02 //
03 
04 #include <string>
05 #include <string_view>
06 #include <iostream>
07 
08 /*
09 std::string FromToken(const std::string& str, const std::string& token)
10 {
11     if(auto pos = str.find(token); pos != std::string::npos)
12         return str.substr(pos);
13     else
14         return {};
15 }
16 */
17 
18 std::string_view FromToken(std::string_view str, std::string_view token)
19 {
20     if(auto pos = str.find(token); pos != std::string::npos)
21         return str.substr(pos);
22     else
23         return {};
24 }
25 
26 int main()
27 {
28     std::string str{"Selected Topics in Programming"};
29 
30     auto subStr = FromToken(str, "Topics in");
31     std::cout << subStr << '\n';
32 }