std::string_view vs std::string
#include <iostream>
#include <string>
#include <string_view>
using std::literals::string_view_literals::operator""sv;
using std::literals::string_literals::operator""s;
int main()
{
std::string_view name_sv = "text"sv;
std::string name_s = "text"s;
std::cout << name_sv << std::endl;
std::cout << name_s << std::endl;
}
Я понимаю, что std::string_view хранит только указатель и длину, без владения. Но объясните пожалуйста, в чем состоит принципиальное различие (в этом коде) между объявлениями переменных name_sv
и name_s
? Различие только в методах? Или будут различия в хранении, продолжительности жизни и т.п.?
Источник: Stack Overflow на русском