Вопросы по теме 'object-lifetime'
Могу ли я сделать так, чтобы время жизни объекта C # зависело от другого объекта?
У меня есть объект (Delegate), который должен оставаться в живых (не собирать мусор), пока жив другой объект (TargetObject). Я хочу, чтобы Delegate собирал мусор, когда TargetObject собирается (или, по крайней мере, доступен для сбора).
Сложность...
716 просмотров
schedule
26.09.2021
Что происходит с элементом управления ActiveX (COleControl) после вызова OnDestroy ()?
У меня есть элемент управления ActiveX, написанный на C ++, который работает в Internet Explorer 8. В большинстве случаев (около 90%), когда вкладка или браузер, содержащие элемент управления, закрыты, происходит нарушение прав доступа, подобное...
1410 просмотров
schedule
01.10.2021
Жизненный цикл приложения ASP .NET + время жизни одиночного экземпляра
Пожалуйста, рассмотрите следующий сценарий:
Я создал полнофункциональное веб-приложение, используя платформу ASP .NET MVC 3. Теперь мое приложение управляется веб-сервером.
На стороне сервера моего приложения получен HTTP-запрос.
На стороне...
2312 просмотров
schedule
20.09.2021
Возможно ли / законно вернуть ссылку на входные временные аргументы, которые передаются по ссылке
Мой вопрос: законно ли возвращать ссылку на входную переменную, которая передается по ссылке. Я позаимствовал пример из 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 просмотров
schedule
12.10.2021
Каково время жизни возвращаемого значения оператора косвенного обращения к стрелке (оператор- ›)?
Хотя обычная перегрузка оператора стрелки обычно возвращает простой указатель, как cppreference.com отмечает, это не обязательно:
Перегрузка оператора -> должна либо возвращать необработанный указатель, либо возвращать объект (по ссылке или...
40 просмотров
schedule
16.03.2022
.NET: способ определить, есть ли у объекта какие-либо ссылки на него?
Вопрос. Есть ли способ узнать, есть ли у объекта "сильные ссылки" на него?
Рэймонд Чен намекнул, что решение возможно :
Вы хотите знать, равен ли счетчик ссылок нулю или отличному от нуля. Для этого используйте WeakReference....
5704 просмотров
schedule
23.03.2022
Почему мне нужно избавляться от подписок после завершения?
Книга Intro To RX описывает возвращаемое значение OnSubscribe как IDisposible и отмечает, что от подписок следует избавляться при вызове OnError и OnCompleted .
Следует учесть, что, когда последовательность завершается или возникает...
3318 просмотров
schedule
20.04.2022
Это неопределенное поведение для инициализации данных перед размещением новых?
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 просмотров
schedule
11.05.2022
Каков порядок уничтожения аргументов функции?
Если некоторая функция f с параметрами p_1 , ..., p_n типов T_1 , ..., T_n соответственно вызывается с аргументами a_1 , ..., a_n и ее тело выдает исключение, завершает или возвращает, то в каком порядке аргументы уничтожены и почему?...
2488 просмотров
schedule
23.05.2022
Проблема с хранением указателей COM в глобальном объекте-синглтоне
Задний план
В приложении, с которым я работаю, есть несколько COM-DLL.
Одна из COM-DLL имеет глобальный одноэлементный объект, который хранит указатели на COM-интерфейсы в других DLL. Поскольку это глобальный одноэлементный объект, я...
506 просмотров
schedule
27.05.2022
Создание тривиального базового класса вручную с помощью Placement-new
Осторожно, мы обходим логово дракона.
Рассмотрим следующие два класса:
struct Base {
std::string const *str;
};
struct Foo : Base {
Foo() { std::cout << *str << "\n"; }
};
Как видите, я обращаюсь к...
464 просмотров
schedule
24.06.2022
Правильно ли определено получение адреса члена неинициализированного объекта?
Рассмотрим следующий пример. Когда bar создан, он дает конструктору базового типа ( foo ) адрес my_member.y , где my_member — элемент данных, который еще не был инициализирован.
struct foo {
foo(int * p_x) : x(p_x) {}
int * x;
};...
166 просмотров
schedule
01.07.2022
Как работать с параметрами времени выполнения при использовании области видимости?
Внимание, впереди длинный пост.
Я много думал об этом в последнее время, и я изо всех сил пытаюсь найти удовлетворительное решение здесь. В примерах я буду использовать C# и autofac.
Проблема
IoC отлично подходит для построения больших деревьев...
3783 просмотров
schedule
09.07.2022
Каков порядок уничтожения параметров функции?
Это продолжение моего предыдущего вопроса Каков порядок уничтожения аргументов функции? потому что я случайно перепутал аргументы с параметрами. Спасибо Коломбо и Т.С. за то, что избавил меня от терминологической путаницы в комментариях к этому...
485 просмотров
schedule
28.07.2022
Локальные переменные уничтожаются до или после оценки возвращаемого значения функции?
Я думаю о создании класса, который представляет владение примитивом синхронизации, примерно так:
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 просмотров
schedule
20.09.2022
Ссылка на безымянный временный объект (время жизни)
Прочитав этот ответ от ildjarn , я написал следующий пример, и похоже, что безымянный временный объект имеет такое же время жизни, как и его ссылка!
Как это возможно?
Это указано в стандарте С++?
Какая версия?
Исходный код:...
1385 просмотров
schedule
01.10.2022
Управление жизненным циклом с помощью Google Guice
Есть ли рекомендуемый шаблон для выключения/закрытия объектов, созданных с помощью Guice?
Жизненный цикл, к которому я стремлюсь:
Подготовьте модуль Guice
Создать инжектор
Используйте инжектор через свой код для получения объектов (...
4768 просмотров
schedule
05.04.2023