Вопросы по теме 'static-initialization'

Поточно-безопасная инициализация локальных статических константных объектов функции
Этот вопрос заставили меня усомниться в практике, которой я следовал годами. Для потокобезопасной инициализации локальных статических константных объектов, я защищаю фактическую конструкцию объекта, но не инициализацию локальной ссылки на...
6752 просмотров

Неинициализированная переменная-член haxe несовместима на разных платформах
Я пытаюсь перекрестно скомпилировать существующее флеш-приложение, написанное на haxe, в javascript, используя openfl и haxe. Под вспышкой я могу делать следующее: class foo { var bar : Int; public function new() {...
512 просмотров

Проблемы реализации фабричного класса
Я реализовал фабричный класс на основе следующей статьи, доступной здесь . Однако у меня есть одна проблема, и я думаю, что она связана с оптимизацией компилятора. У меня есть иерархия классов, где класс Node (в Node.h / Node.cpp) является...
151 просмотров
schedule 04.11.2021

Предотвращение фиаско с порядком статической инициализации, C ++
Однажды я прочитал замечательный FAQ по C ++ (это действительно хорошо !!) и прочитал тема о том, как предотвратить" фиаско "статического порядка инициализации. Поэтому автор советует обернуть статические переменные в функции, чтобы предотвратить...
5859 просмотров

Произошло ли фиаско с порядком статической инициализации при инициализации переменных внутри класса?
Я пытаюсь реорганизовать наш старый код с С ++ 98 на С ++ 14. И необходимость компилировать как с более старым gcc (c ++ 98), так и с более новым gcc (c ++ 14). Так выглядит наш старый код (это полностью составленный пример нашего сложного кода....
63 просмотров

Статическая переменная из статической связанной библиотеки, используемой до ее создания
Я пытался создать для себя фреймворк модульного тестирования, и он работал нормально, пока я не превратил его в статическую библиотеку. Статический контейнер unit_base :: _ units используется до его создания. Я воспроизвел проблему со следующей...
18 просмотров

Почему порядок уничтожения этих локальных статических объектов НЕ является обратным порядку их инициализации?
У меня есть два локальных статических объекта, один и два. Конструктор и деструктор One получают доступ к Two через GetTwo(): #include <iostream> struct One; struct Two; const One& GetOne(); const Two& GetTwo(); struct Two {...
674 просмотров
schedule 01.04.2022

__attribute __ ((конструктор)) путаница в порядке вызова
Ответ здесь демонстрирует, что __attribute __ ((конструктор)) не называется после статической инициализации он вызывается в порядке объявления. Тогда какова его цель, если ее вызов не гарантируется, когда все данные инициализированы? Мы также...
6001 просмотров

Какие классы инициализируются, когда статический метод базового класса вызывается через ссылку на производный класс?
Я думаю, что только базовый класс инициализируется при вызове Derived.f() . Точно так же, как это происходит, когда у нас есть статическое поле (не постоянное во времени компиляции) в базе , а не статический метод. Я сомневаюсь только в том, что...
449 просмотров
schedule 22.04.2022

Статическая инициализация и использование класса в отдельном модуле в D
В моей программе есть класс, который я хочу выделить перед входом в main(). Я хотел бы спрятать их в отдельный модуль, чтобы не загромождать свой код; Однако, как только модуль выходит из области видимости (до ввода main()), объекты освобождаются, и...
121 просмотров
schedule 23.05.2022

Существуют ли какие-либо гарантии в JLS относительно порядка выполнения статических блоков инициализации?
Интересно, надежно ли использовать такую ​​конструкцию, как: private static final Map<String, String> engMessages; private static final Map<String, String> rusMessages; static { engMessages = new HashMap<String, String> ()...
419 просмотров
schedule 18.07.2022

Использование переменной из другого файла перед основным
У меня небольшие проблемы с пониманием того, почему мой код работает так, как он работает (или не работает так, как должен). Я пытаюсь написать (на C++) интерфейс, который позволяет использовать некоторые функции, работающие с unordered_map , из...
54 просмотров
schedule 04.09.2022

Инициализация по запросу для нескольких статических переменных без статических вложенных классов?
Я хочу иметь класс с несколькими статическими переменными, которые будут инициализироваться только по требованию. public class Messages { public static final String message1 = init1(); public static final String message2 = init2(); }...
229 просмотров

Порядок инициализации статических данных внутри шаблона класса
// File: InitFirst.h #pragma once template <int val> struct InitFirst { static float s_dividedByThree; }; template <int val> float InitFirst<val>::s_dividedByThree = val / 3.0; // File: Test.h #include...
845 просмотров

Конфигурация Lambdaj FinalClassArgumentCreators для всего приложения. Где и как это сделать?
У нас возникла проблема с настройкой lambdaj для работы с Joda Time. Так как LocalDate является окончательным классом, Lambdaj необходимо инициализировать следующим образом: ( см. ошибку 70 ) public class LocalDateArgumentCreator implements...
204 просмотров

clang и gcc по-разному ведут себя при обработке создания шаблонов и статических членов constexpr?
Рассмотрим следующую программу (извините за длину, это самый короткий способ, который я мог придумать, чтобы выразить проблему): #include <iostream> #include <vector> #include <typeindex> using namespace std;...
225 просмотров

Как CLR узнает, было ли уже инициализировано статическое поле?
Есть одна вещь, которая меня всегда интересовала в отношении static fields / constructors . static class инициализируется при первой ссылке на одно из его полей, это легко. Но как CLR узнает, что это первый раз?
204 просмотров
schedule 03.01.2023

Почему использование параллельных потоков в статическом инициализаторе приводит к нестабильной взаимоблокировке
ВНИМАНИЕ: это не дубликат, пожалуйста, прочитайте тему внимательно https://stackoverflow.com/users/3448419/apangin цитата: Настоящий вопрос заключается в том, почему код иногда работает, когда не должен. Проблема воспроизводится даже без...
1345 просмотров

Статический массив статических членов: возможность фиаско порядка инициализации
Рассмотрим следующий код: class Foo { public: static const char one[]; static const char two[]; static const char* all[]; }; const char Foo::one[] = "one"; const char Foo::two[] = "two"; const char* Foo::all[] = {Foo::one, Foo::two};...
53 просмотров
schedule 24.09.2023

Могу ли я получить доступ к статическому локальному, пока он создается на C ++?
Стандарт C ++ гарантирует создание статических локальных переменных при первом использовании. Однако мне интересно, что произойдет, если я получу доступ к статическому локальному объекту во время его создания. Я предполагаю, что это УБ. Но как...
996 просмотров