Повисший std::string_view в C++
Повисший просмотр остается, когда буфер уже уничтожен, а окно на символы еще существует.
Если построить std::string_view на
результате выражения вроде временной
std::string, буфер исчезнет в конце
выражения, а просмотр будет указывать в
пустоту. Такой просмотр нельзя выводить
и нельзя использовать для чтения.
Безопасный порядок: сначала сохранить строку в именованной переменной, затем построить просмотр и работать, пока строка жива. Запишем строку, просмотр и выведем текст:
#include <string>
#include <string_view>
std::string owner = "safe text";
std::string_view view = owner;
std::cout << view << "\n";
Создайте std::string msg
со значением "hold", постройте на
ней просмотр и выведите его, не уничтожая
строку раньше просмотра.