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

Ошибки инициализации статического внутреннего класса Java
Контекст: класс java.io.File имеет статический метод внутреннего класса следующим образом: LazyInitialization.temporaryDirectory(); [ОТРЕДАКТИРОВАНО, чтобы добавить еще немного кода] Мой код ниже в конечном итоге вызывает указанную выше...
1639 просмотров

Что составляет неудачную инициализацию статических переменных или переменных продолжительности хранения потока в области блока?
Ответив на этот вопрос и не найдя удовлетворительного ответа в стандартной статье, я начал задаваться вопросом. В стандарте указано следующее: инициализация указанных переменных: §6.7 [stmt.dcl] p4 [...] В противном случае такая...
280 просмотров

Как смягчить воздействие API-интерфейса на пользователя от общих членов в шаблонных классах?
Допустим, у меня есть таблица поиска, которую я могу построить для заданного целого числа: class FooLookupTable { ... public: FooLookupTable(int radix) { ... } }; Затем есть класс, параметр шаблона которого является тем...
198 просмотров

Является ли инициализация локального статического объекта-функции поточно-ориентированной?
Следующие две функции создают разные сборки, что говорит мне, что они разные. Может кто подскажет, чем они разные? И является ли инициализация локальной статической переменной функции в func2 потокобезопасной или нет? Если ответ зависит от...
653 просмотров

Статическая инициализация Java с наследованием
public class Main { public static void main(String[] args) { System.out.println(B.x); } } class A { public static String x = "x"; } class B extends A { static { System.out.print("Inside B."); } } Вопрос:...
3149 просмотров

Статический инициализатор запускается после конструктора, почему?
У меня есть 2 класса: Класс А: public class A { static B b = new B(); static { System.out.println("A static block"); } public A() { System.out.println("A constructor"); } } Класс Б: public...
3723 просмотров
schedule 18.06.2023

Когда использовать инициализаторы?
Недавно я столкнулся со следующим синтаксисом java: static { ... } очевидно, это известно как "статический инициализатор" (см. Статический блок в Java ) и " выполняется при загрузке класса ". Когда следует использовать статический...
164 просмотров

Повторное использование статического блока инициализации
Я обнаружил, что использование статического блока инициализации в Enum отлично подходит для реализации пользовательской функции valueOf, как описано здесь . public static RandomEnum getEnum(String strVal) { return strValMap.get(strVal); }...
103 просмотров
schedule 21.05.2022

Идиома C ++ Nifty Counter; Почему?
Недавно я наткнулся на Идиому изящных счетчиков . Насколько я понимаю, это используется для реализации глобальных переменных в стандартной библиотеке, таких как cout, cerr и т. Д. Поскольку эксперты выбрали его, я предполагаю, что это очень сильный...
3491 просмотров

Чем отличаются Zero-Initialization, Static-Initialization и Value-Initialization?
Бен Фойгт указал здесь это: Нулевая инициализация — это один из шагов статической инициализации. Но вы правы, что нельзя слепо подставлять последний (тег), так как для инициализации значения тоже выполняется нулевая инициализация. Однако...
172 просмотров

Статическая инициализация большой карты
Я статически инициализирую большой (~ 20 КБ) std::unordered_map const std::unordered_map<std::string, std::string> mapStringToString{ {"AAF", "ELN"}, {"ACT", "POC"}, {"AEK", "THJ"}, {"AFO", "EUP"}, {"AHB", "HYW"}, {"AIB", "GFW"}, {"AJX",...
717 просмотров
schedule 15.10.2022

Инициализация статических членов шаблонов классов с побочными эффектами
Мое приложение C++14 должно динамически создавать и уничтожать объекты определенного типа. Каждый из этих объектов имеет имя, и имя присваивается при создании объекта. Каждое имя жестко закодировано как строковый литерал. Следующий псевдокод...
95 просмотров

Ранняя динамическая инициализация С++
В текущем стандарте C++ абзац [basic.start.static] p. 3 говорит (выделено мной): Реализации разрешено выполнять инициализацию переменной со статической или продолжительностью хранения потока как статическую инициализацию, даже если такая...
115 просмотров

Является ли плохой практикой указывать размер массива с помощью переменной вместо `#define` в C++? (Ошибка C: переменная модификация в области файла)
В C объявление размера массива с помощью переменной, даже если это переменная const , НЕ разрешено. Пример: это не скомпилируется в C: #include <stdio.h> const int SIZE = 2; int a[SIZE]; int main() { a[0] = 1; a[1] = 2;...
738 просмотров

Как безопасно обойти циклы BeforeFieldInit и статического конструктора?
Меня беспокоит взаимодействие между следующими двумя видами поведения: http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-335.pdf#page=179 2.1. Если тип еще не инициализирован, попробуйте установить блокировку...
174 просмотров

Почему запуск потока из статического инициализатора и ожидание его завершения приводит к взаимоблокировке?
Я беру код из этого ответа - https://stackoverflow.com/a/9286697/2674303 Причина, по которой я создал текущую тему, заключается в том, что я не понимаю, почему этот код приводит к тупику: public class Lock implements Runnable { static {...
126 просмотров

Явное создание шаблона класса со статическим членом в статической библиотеке
Вопрос, который я собираюсь задать, связан с библиотекой C++ с поддержкой постоянства, над которой я работаю. Однако мне удалось разобрать мою проблему на простом примере, поэтому я не буду вдаваться в подробности своего исходного сценария, если...
94 просмотров

статическая карта инициализирована неправильно?
Я использую некоторый код С++ в статической библиотеке в приложении macOS. Код С++ содержит следующее: static map<char*, char*> aMap1; __attribute__((constructor)) static void initialize() { { static map<char*, char*> aMap2;...
91 просмотров

Ошибка инициализации статического члена данных С++ в Eigen
Я использую gcc-10 и Eigen 3.3.9 в Ubuntu 18.04. Этот фрагмент компилируется и работает нормально: struct S { static inline Eigen::Vector3f u{1, 1, 1}; }; int main() { Eigen::Vector3f u(1, 1, 1); } но последняя версия инициализации при...
77 просмотров