Вопросы по теме 'object-lifetime'

Могу ли я сделать так, чтобы время жизни объекта C # зависело от другого объекта?
У меня есть объект (Delegate), который должен оставаться в живых (не собирать мусор), пока жив другой объект (TargetObject). Я хочу, чтобы Delegate собирал мусор, когда TargetObject собирается (или, по крайней мере, доступен для сбора). Сложность...
716 просмотров
schedule 26.09.2021

Что происходит с элементом управления ActiveX (COleControl) после вызова OnDestroy ()?
У меня есть элемент управления ActiveX, написанный на C ++, который работает в Internet Explorer 8. В большинстве случаев (около 90%), когда вкладка или браузер, содержащие элемент управления, закрыты, происходит нарушение прав доступа, подобное...
1410 просмотров

Жизненный цикл приложения ASP .NET + время жизни одиночного экземпляра
Пожалуйста, рассмотрите следующий сценарий: Я создал полнофункциональное веб-приложение, используя платформу ASP .NET MVC 3. Теперь мое приложение управляется веб-сервером. На стороне сервера моего приложения получен HTTP-запрос. На стороне...
2312 просмотров

Возможно ли / законно вернуть ссылку на входные временные аргументы, которые передаются по ссылке
Мой вопрос: законно ли возвращать ссылку на входную переменную, которая передается по ссылке. Я позаимствовал пример из C ++: Срок службы временных аргументов? и возврат по ссылке rvalue #include <iostream> #include <string>...
100 просмотров
schedule 03.10.2021

Почему поведение std :: memcpy не определено для объектов, которые не являются TriviallyCopyable?
Из http://en.cppreference.com/w/cpp/string/byte/memcpy : Если объекты не TriviallyCopyable (например, скаляры, массивы, C-совместимые структуры) , поведение не определено. В моей работе мы долгое время использовали std::memcpy для...
8021 просмотров

Каково время жизни возвращаемого значения оператора косвенного обращения к стрелке (оператор- ›)?
Хотя обычная перегрузка оператора стрелки обычно возвращает простой указатель, как cppreference.com отмечает, это не обязательно: Перегрузка оператора -> должна либо возвращать необработанный указатель, либо возвращать объект (по ссылке или...
40 просмотров

.NET: способ определить, есть ли у объекта какие-либо ссылки на него?
Вопрос. Есть ли способ узнать, есть ли у объекта "сильные ссылки" на него? Рэймонд Чен намекнул, что решение возможно : Вы хотите знать, равен ли счетчик ссылок нулю или отличному от нуля. Для этого используйте WeakReference....
5704 просмотров

Почему мне нужно избавляться от подписок после завершения?
Книга Intro To RX описывает возвращаемое значение OnSubscribe как IDisposible и отмечает, что от подписок следует избавляться при вызове OnError и OnCompleted . Следует учесть, что, когда последовательность завершается или возникает...
3318 просмотров

Это неопределенное поведение для инициализации данных перед размещением новых?
struct A { //POD class char data[10]; void print() {std::cout << data;} }; int main() { char buffer[11] = "HELLO"; //sets values in buffer A* a = new(buffer)A; a->print(); // read from memory buffer a->~A(); }...
223 просмотров

Каков порядок уничтожения аргументов функции?
Если некоторая функция f с параметрами p_1 , ..., p_n типов T_1 , ..., T_n соответственно вызывается с аргументами a_1 , ..., a_n и ее тело выдает исключение, завершает или возвращает, то в каком порядке аргументы уничтожены и почему?...
2488 просмотров

Проблема с хранением указателей COM в глобальном объекте-синглтоне
Задний план В приложении, с которым я работаю, есть несколько COM-DLL. Одна из COM-DLL имеет глобальный одноэлементный объект, который хранит указатели на COM-интерфейсы в других DLL. Поскольку это глобальный одноэлементный объект, я...
506 просмотров

Создание тривиального базового класса вручную с помощью Placement-new
Осторожно, мы обходим логово дракона. Рассмотрим следующие два класса: struct Base { std::string const *str; }; struct Foo : Base { Foo() { std::cout << *str << "\n"; } }; Как видите, я обращаюсь к...
464 просмотров

Правильно ли определено получение адреса члена неинициализированного объекта?
Рассмотрим следующий пример. Когда bar создан, он дает конструктору базового типа ( foo ) адрес my_member.y , где my_member — элемент данных, который еще не был инициализирован. struct foo { foo(int * p_x) : x(p_x) {} int * x; };...
166 просмотров

Как работать с параметрами времени выполнения при использовании области видимости?
Внимание, впереди длинный пост. Я много думал об этом в последнее время, и я изо всех сил пытаюсь найти удовлетворительное решение здесь. В примерах я буду использовать C# и autofac. Проблема IoC отлично подходит для построения больших деревьев...
3783 просмотров

Каков порядок уничтожения параметров функции?
Это продолжение моего предыдущего вопроса Каков порядок уничтожения аргументов функции? потому что я случайно перепутал аргументы с параметрами. Спасибо Коломбо и Т.С. за то, что избавил меня от терминологической путаницы в комментариях к этому...
485 просмотров

Локальные переменные уничтожаются до или после оценки возвращаемого значения функции?
Я думаю о создании класса, который представляет владение примитивом синхронизации, примерно так: class CCriticalSectionLock { public: CCriticalSectionLock( CCriticalSection &cs ) : cs( cs ) { cs.Enter(); }...
1962 просмотров
schedule 26.08.2022

Как std::future влияет на время жизни связанной std::packaged_task?
У меня есть std::packaged_task , содержащий лямбду, которая копирует переменную. Когда этот std::packaged_task будет удален, я ожидаю, что переменная, живущая внутри лямбды, будет уничтожена, но я заметил, что если я получаю связанный std::future...
693 просмотров
schedule 01.09.2022

Законно ли вызывать функции-члены после того, как объект был явно уничтожен, но до того, как его память была освобождена?
У меня есть такой код: struct data { void doNothing() {} }; int main() { data* ptr = new data(); ptr->~data(); ptr->doNothing(); ::operator delete(ptr); } Обратите внимание, что doNothing() вызывается после того,...
3136 просмотров

Ссылка на безымянный временный объект (время жизни)
Прочитав этот ответ от ildjarn , я написал следующий пример, и похоже, что безымянный временный объект имеет такое же время жизни, как и его ссылка! Как это возможно? Это указано в стандарте С++? Какая версия? Исходный код:...
1385 просмотров
schedule 01.10.2022

Управление жизненным циклом с помощью Google Guice
Есть ли рекомендуемый шаблон для выключения/закрытия объектов, созданных с помощью Guice? Жизненный цикл, к которому я стремлюсь: Подготовьте модуль Guice Создать инжектор Используйте инжектор через свой код для получения объектов (...
4768 просмотров