Описание тега storage-duration
Используйте для вопросов, когда важна продолжительность хранения объектов.
1
ответ
C++ static vs порядок уничтожения продолжительности хранения потока
Рассмотрим, как в C++ существуют эти две длительности хранения (среди прочих): статическая длительность хранения и длительность хранения потока., Далее рассмотрим этот код: static MyClassA a; thread_local static MyClassB b; Допустим, что "a" и "b" м…
12 май '15 в 20:33
1
ответ
Локальная переменная глобальной области видимости
Рассмотрим следующий код: #include <iostream> #include <thread> using std::cout; using std::thread; thread_local int a; void foo() { a = a + 1; cout << a << "\n"; } void bar() { cout << a << "\n"; } void baz() { c…
11 июл '14 в 15:34
2
ответа
Продолжительность хранения и инициализация члена структуры в C++
#include <iostream> using namespace std; struct A { // Some Other Code int x; }; A a1; int main(){ A a2; cout << "a1.x = " << a1.x << endl; cout << "a2.x = " << a2.x << endl; return 0; } Стандарт C++14 (ISO/…
11 янв '17 в 16:36
1
ответ
Продолжительность хранения базовых символьных данных с пользовательским строковым литералом
Быстрая настройка: я хочу передать строки в моей программе в виде указателя и размера. У меня есть класс String и пользовательский литерал для построения литеральных строк: struct String { const char *ptr; size_t sz; }; inline constexpr String opera…
18 сен '15 в 12:29
3
ответа
Инициализировать размер массива в C на уровне файла
Я хотел бы инициализировать массив на основе вычислений, но компилятор выдает мне ошибку, когда я пытаюсь это сделать (я использую GCC версии 6.3.0): const int SCREEN_WIDTH = 800; const int SCREEN_HEIGHT = 600; char textgrid[SCREEN_HEIGHT/16][SCREEN…
06 янв '18 в 19:07
4
ответа
Инициализация статического члена данных
Почему не происходит инициализация статического члена данных по умолчанию? В следующем примере struct data_member { data_member(){ cout << "data_member\n"; } ~data_member(){ cout << "~data_member\n"; } }; struct Y { static data_member m;…
10 июл '14 в 17:01
2
ответа
Как программа узнает, нужно ли инициализировать статическую переменную?
Как в заголовке - как программа узнает, что foo уже инициализируется, когда функция вызывается во второй раз: int getFoo() { static int foo = 30; return foo; } int main() { getFoo(); getFoo(); } Я хочу знать, хранит ли программа какую-то дополнитель…
08 сен '18 в 18:47
1
ответ
Исключение переменной со статической продолжительностью хранения
Я столкнулся со следующим правилом (3.7.1/2 N3797): Если переменная со статической продолжительностью хранения имеет инициализацию или деструктор с побочными эффектами, она не должна быть удалена, даже если она не используется, за исключением того, …
10 июл '14 в 14:03
1
ответ
Должны ли статические объекты вообще инициализироваться?
С прагматики языка программирования, Скотт Время жизни объекта обычно соответствует одному из трех основных механизмов распределения памяти, используемых для управления пространством объекта: Статическим объектам присваивается абсолютный адрес, кото…
15 сен '17 в 22:53
1
ответ
Являются ли статические члены данных и статические методы класса в C++ статическими объектами?
С прагматики языка программирования, Скотт Время жизни объекта обычно соответствует одному из трех основных механизмов распределения памяти, используемых для управления пространством объекта: Статическим объектам присваивается абсолютный адрес, кото…
16 сен '17 в 15:23
4
ответа
Может ли статическая функция c вернуть локальный массив символов?
В библиотеке zflog я видел этот код static char* lvl_char(const int lvl) { switch (lvl) { case ZF_LOG_VERBOSE: return "VERBOSE\0"; case ZF_LOG_DEBUG: return "DEBUG\0"; case ZF_LOG_INFO: return "INFO\0"; case ZF_LOG_WARN: return "WARN\0"; case ZF_LOG…
03 май '17 в 06:09
0
ответов
Нелокальный объект с длительностью хранения потока
Непонятно, почему объект с длительностью хранения потока не инициализируется по умолчанию? Например: #include <iostream> using std::cout; struct S { S(){ cout << "S\n"; } ~S(){ cout << "~S\n"; } }; thread_local S s; int main() { } …
11 июл '14 в 13:10
1
ответ
Вывод ошибки (указатель)
Я программист базового уровня. Я написал функцию в программе AC, возвращающую массив (через указатель, ссылка на программу прилагается), но есть некоторая ошибка. Выход должен быть 12, но выход 10. Может ли кто-нибудь помочь мне определить ошибку (е…
20 дек '17 в 13:45
3
ответа
Как статическая переменная не переназначается внутри функции
У меня есть вопрос относительно ответа на этот вопрос, но я не могу его комментировать, потому что у меня менее 50 представителей. Мне было интересно в ответ foo() вызывается несколько раз, а статической переменной назначается одинаковое количество …
30 мар '17 в 05:42
1
ответ
Сохраняет ли C++ default-initialization предшествующую нулевую инициализацию?
Если конструктор C++ для объекта со статической продолжительностью хранения не инициализирует элемент, требуется ли это для сохранения предыдущей инициализации нуля или он оставляет элемент с неопределенным значением? Мое чтение спецификации C++ зак…
31 окт '15 в 20:17
1
ответ
Тип ссылки и продолжительность хранения
Сначала приведу определение срока хранения (с. 3.7.1/1 N3797): Срок хранения - это свойство объекта, которое определяет минимальный потенциальный срок хранения хранилища, содержащего объект. Но 3.7.1/3 сказал: Категории продолжительности хранения пр…
10 июл '14 в 10:48
1
ответ
Срок хранения замененного подобъекта
Что касается кода ниже int main() { struct S { int i; } s { 42 }; new (&s.i) int { 43 }; } [basic.stc]/2 говорит Динамическая продолжительность хранения связана с объектами, созданными выражением new. Есть похожий вопрос, где было решено, что ра…
17 фев '19 в 15:39
1
ответ
Есть ли в Python статические объекты, объекты стека и объекты кучи?
С прагматики языка программирования, Скотт Время жизни объекта обычно соответствует одному из трех основных механизмов распределения памяти, используемых для управления пространством объекта: Статическим объектам присваивается абсолютный адрес, кото…
15 сен '17 в 22:12
1
ответ
Оптимизация статических объектов хранения в контексте потока
Может ли компилятор оптимизировать статический объект хранения в контексте многопоточной программы? Я спрашиваю его, чтобы знать, генерирует ли переменная, объявленная как статическая, например, побочный эффект, когда используется в функции, вызывае…
19 июн '19 в 00:06
0
ответов
Как обеспечить, чтобы аргументы указывали на объекты только в статическом хранилище?
Я хотел бы убедиться, что аргумент, данный функции, указывает (или ссылается) на объект, который имеет статический класс продолжительности хранения. Решение должно работать с C++11 без специальных расширений компилятора. Наиболее похожий вопрос, кот…
18 авг '19 в 13:08