170 похожих чатов

Что то я запутался со строковыми литералами. Где и

как они живут?
Конкретно. Можно ли делать так:
struct foo{
string_view text_;
};
foo make_foo(){
return {"text"};
}
По видимому аналогично
const char* get_foo_text(){
return "text";
}
Этот "text" гарантировано живёт всю жизнь программы? Или есть нюансы?

6 ответов

5 просмотров

Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!

struct foo и функцией make_foo(), строка "text" будет храниться в памяти как литеральная строка и будет доступна на протяжении всего времени выполнения программы

Всё ещё неправильно :( Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!

Да, можно, гарантированно. Строковые литералы - это просто константы в коде

Один нюанс - если это std::string view, надо посмотреть, умеет ли он так инититься и второе - тут мина закладывается, через этот text_ ничего нельзя будет менять, только читать

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
46
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
вопрос по москвину - не понимаю вот такого вопроса похоже Сколько разных всегда завершающихся функций с типом a -> a -> b -> a -> a можно реализовать? Две функции одинаково...
Fedor
11
Слушайте, ещё такая интересная задачка. Сделан аудит действий пользователей через триггеры в базе, соответственно каждый пользователь имеет свой логин и пароль в базе. Это пре...
Сергей Бычков
11
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
Скажите, тут нет проблемы? IMyInterface1 = interface function GetInterface2: IInterface2; ... function TMyInterface.GetInterface2: IInterface2; begin Result := TI...
Ruslan aka DUDE
18
Утра доброго. Просветите пожалуйста. Хочу сделать rest сервер на делфи. Посмотрел 3 фреймворка: dmvc, Mars, mormot. Ни в одном из них не упоминается ассинхронная обработка вхо...
Сергей Бычков
10
возможно для форматирования TimeStampZ нужен другой механизм, не?
Роман Лях (rgreat)
13
вопрос странный немного... в секции interface идёт константа const TableExt: array [0..39] of record _type: byte; _ext : string; end = ( (_type:typeDAT ...
Alexey Kulakov
5
Всем привет! Помогите разобраться с Lazarus. Переношу программу с Delphi 10.2 Tokyo на Lazarus 3.2. У меня есть строка string которая изначально имеет такое содержание (то чт...
Дмитрий Завгородний
4
Карта сайта