Вопросы с тегом «lifetime»

5
Каково время жизни статической переменной в функции C ++?
Если переменная объявлена ​​как staticв области действия функции, она инициализируется только один раз и сохраняет свое значение между вызовами функции. Что именно это время жизни? Когда вызывается его конструктор и деструктор? void foo() { static string plonk = "When will I die?"; }
373 c++  static  lifetime 

2
Почему я не могу сохранить значение и ссылку на это значение в одной структуре?
У меня есть значение, и я хочу сохранить это значение и ссылку на что-то внутри этого значения в моем собственном типе: struct Thing { count: u32, } struct Combined<'a>(Thing, &'a u32); fn make_combined<'a>() -> Combined<'a> { let thing = Thing { count: 42 }; Combined(thing, &thing.count) } Иногда у меня …


1
Что такое нелексические времена жизни?
В Rust есть RFC, связанный с нелексическим временем жизни, который был одобрен для реализации в языке в течение длительного времени. В последнее время поддержка этой функции в Rust значительно улучшилась и считается полной. У меня вопрос: что такое нелексическая жизнь?

9
«Время жизни» строкового литерала в C
Разве указатель, возвращаемый следующей функцией, не будет недоступен? char *foo(int rc) { switch (rc) { case 1: return("one"); case 2: return("two"); default: return("whatever"); } } Значит, время жизни локальной переменной в C / C ++ находится практически только внутри функции, верно? Это означает, что после char* foo(int)завершения указатель, который он …

1
Использование переменной в собственном инициализаторе
[basic.scope.pdecl] / 1 стандартного черновика C ++ 20 содержал в примечании следующий (ненормативный) пример (частичная цитата до запроса на объединение 3580 , см. ответ на этот вопрос): unsigned char x = x; [...] x инициализируется своим собственным (неопределенным) значением. Это на самом деле имеет четко определенное поведение в C ++ …

1
Разрешена ли арифметика указателей на выделенном хранилище начиная с C ++ 20?
В стандарте C ++ 20 говорится, что типы массивов являются неявными типами времени жизни . Означает ли это, что массив неявного типа времени жизни может быть создан неявно? Неявное создание такого массива не будет вызывать создание элементов массива? Рассмотрим этот случай: //implicit creation of an array of std::string //but not …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.