0
ответов

Как обрабатывать ошибки конструктора для RAII

Я знаком с преимуществами RAII, но недавно столкнулся с проблемой в коде вроде этого :class Foo { public :Foo (){ DoSomething ();... } ~Фу (){...
вопрос задан: 5 July 2012 14:13
0
ответов

Каково общее соглашение об именах для классов RAII? [закрыто]

В C++ при использовании шаблона Resource Acquisition is Initialization (RAII )существуют ли какие-либо общие соглашения для именования классов? В моем случае у меня есть классы, которые выполняют следующие виды...
вопрос задан: 2 July 2012 18:18
0
ответов

Почему RAII так называется? [закрыто]

Я понимаю, что эта идиома полезна, потому что она гарантирует, что ресурсы высвобождаются после того, как объект, который их использует, выходит из области видимости. Другими словами, речь идет скорее о де -приобретении...
вопрос задан: 10 April 2012 19:31
0
ответов

Реализация RAII на C#

У меня есть форма InfoPath, в которой мне нужно условно отключить события OnChange. Поскольку невозможно связать обработчики событий после загрузки формы, я вынужден полагаться на глобальный счетчик...
вопрос задан: 2 April 2012 08:00
0
ответов

Сколько работы должен выполнить конструктор моего класса?

У меня есть класс, представляющий поток данных, в основном это читает или записывает в файл, но сначала данные шифруются / дешифруются, а также существует базовый объект кодека, который обрабатывает ...
вопрос задан: 18 January 2012 19:10
0
ответов

Когда RAII имеет преимущество перед GC?

Рассмотрим этот простой класс, который демонстрирует RAII в C ++ (от макета моей головы): class X {public: X () {fp = fopen ("what", "r"); if (fp == NULL) бросить some_exception () ...
вопрос задан: 3 January 2012 13:10
0
ответов

Вызываются ли деструкторы после броска в C ++?

Я запустил пример программы, и действительно вызываются деструкторы для объектов, выделенных стеком, но гарантируется ли это стандартом?
вопрос задан: 22 December 2011 09:41
0
ответов

настраиваемая реализация RAII C ++ для блокировок мьютексов с ограниченной областью действия

Я не могу использовать boost или последнюю библиотеку std :: thread. Можно создать собственную реализацию мьютекса с заданной областью действия. В нескольких словах, когда экземпляр класса создается, мьютекс блокируется. После класса ...
вопрос задан: 2 November 2011 08:07
0
ответов

Поддерживает ли PHP шаблон RAII? Как?

Большинство ресурсов PHP никогда не касаются управления памятью, потому что сам язык довольно хорошо справляется с этим за вас. Однако, в PHP вы часто имеете дело с внешними ресурсами, которые не ...
вопрос задан: 5 October 2011 01:37
0
ответов

C ++ RAII Questions

Насколько я понимаю, для правильной реализации RAII, если я вызываю CreateFont, я бы заключил это в класс с CreateFont в конструкторе и DeleteObject в деструкторе, чтобы он очистил его. когда ...
вопрос задан: 26 September 2011 14:17
0
ответов

Обнаружение, когда деструктор запущен из-за генерирования исключения?

Какой хороший способ в C ++ обнаруживать в деструкторе, что он запускается во время раскрутки стека из-за возникшего исключения, в отличие от обычного выхода из области видимости, запускающего деструктор? I '...
вопрос задан: 22 August 2011 01:16
0
ответов

Когда сборка мусора может быть быстрее, чем ручное управление памятью? [закрыто]

При каких обстоятельствах сборка мусора более эффективна, чем ручное управление памятью? (Здесь руководство может означать использование malloc и free, как в C, или техник более чистого RAII и интеллектуального указателя ...
вопрос задан: 8 August 2011 01:14
0
ответов

Конструктор перемещения и константные переменные-члены

Мне нравится идея константных переменных-членов, особенно когда я заключаю функции C в классы.Конструктор принимает дескриптор ресурса (например, дескриптор файла), который остается действительным в течение всего объекта ...
вопрос задан: 11 June 2011 17:25
0
ответов

Классы-оболочки Win API для дескрипторов

Написание класса-оболочки для дескриптора который передается только по значению, относительно легко. Я пытаюсь определить, как лучше всего инкапсулировать дескрипторы, которые необходимо передавать по адресу. For ...
вопрос задан: 20 April 2011 23:50
0
ответов

longjmp и RAII

Итак, у меня есть библиотека (написанная не мной), которая, к сожалению, использует abort () для исправления определенных ошибок. На уровне приложения эти ошибки можно исправить, поэтому я хотел бы обрабатывать их вместо ...
вопрос задан: 29 March 2011 09:08
0
ответов

Предотвращение взрыва заголовка в C ++ (или C ++ 0x)

Допустим, есть общий код вроде следующего: y.hpp: #ifndef Y_HPP #define Y_HPP // ВКЛЮЧЕНО МНОГО ФАЙЛОВ шаблон class Y { общественность: T z; // МНОГО ВЕЩЕЙ ЗДЕСЬ }; # ...
вопрос задан: 28 March 2011 15:15
0
ответов

Почему RAII и сборка мусора являются взаимоисключающими?

Хотя я думаю, что понимаю суть проблемы (т.е. хороший сборщик мусора отслеживает объекты, а не область действия), я недостаточно знаю о предмете, чтобы убедить других. Не могли бы вы объяснить, почему существует ...
вопрос задан: 12 January 2011 18:04
0
ответов

When a RAII object fails to construct

Suppose I construct a RAII object, and that object may fail to construct. How do I handle this? try { std::vector v(LOTS); // try scope ends here because that's what the catch is ...
вопрос задан: 31 October 2010 16:49
0
ответов

Stack создание экземпляров объекта в D

Я изучаю D, и меня смущает получаемая ошибка. Рассмотрим следующее: модуль helloworld; import std.stdio; import std.perf; ptrdiff_t main (строка [] аргументы) {auto t = new ...
вопрос задан: 23 October 2010 22:18
0
ответов

Есть ли какие-либо исследования (или лучшее использование) RAII в языках GC?

Примечание: RAII времени жизни объекта не использует / с областью блока RAII Кажется, что это возможно с использованием дополнительной категории gc, короткоживущих объектов (проверьте категорию gc довольно часто), долгоживущие объекты (проверьте ...
вопрос задан: 6 October 2010 10:07
0
ответов

Как инкапсулировать C API в классы RAII C ++?

При наличии C API для библиотеки, управляющей сеансами, которая владеет элементами, каков наилучший дизайн для инкапсуляции C API в классы RAII C ++? C API выглядит так: HANDLE OpenSession (STRING sessionID); ...
вопрос задан: 16 September 2010 10:38