raii

У меня есть класс, который использует RAII для очистки в случае, если что-то пойдет не так. Это означает, что класс содержит флаг, который сообщает ему, была ли работа завершена, и если этот флаг не установлен при вызове конструктора, он выполняет свои задачи очистки и создает сообщения журнала. Теперь я хоте...

Стандартная библиотека предоставляет mutex класс, с возможностью вручную блокировать и разблокировать его: std::mutex m; m.lock(); // ... m.unlock(); Однако библиотека, по-видимому, также признает, что общий случай-это просто заблокировать мьютекс в какой-то момент и разблокировать его при выходе из блока...

Предположим, у меня есть два локальных интеллектуальных указателя, foo и bar. shared_ptr<Foo> foo = ... shared_ptr<Bar> bar = ... Эти интеллектуальные указатели являются оболочками вокруг ресурсов, которые по какой-то причине должны быть уничтожены в порядке foo, а затем bar. Теперь я хочу соз...

RAII = получение ресурсов является инициализацией Ref подсчет = "GC бедняка" Вместе они довольно мощные (например, 3D-объект с реф-счетом, содержащий VBO, который он выбрасывает, освобождается, когда вызывается деструктор). Теперь вопрос : существует ли RAII в каком-либо языке, кроме C++? В частности, яз...

Я ранее задавал этот вопрос под другим именем, но удалил его, потому что я не очень хорошо его объяснил. Предположим, у меня есть класс, который управляет файлом. Предположим, что этот класс обрабатывает файл как имеющий определенный формат файла и содержит методы для выполнения операций с этим файлом: cla...

Я догоняю свой c++ в последнее время, после пары лет эксклюзивного Objective-C на iOS, и тема, которая больше всего подходит для "нового стиля" c++, - RAII Чтобы убедиться, что я правильно понимаю концепцию RAII, вы считаете Objective-C lazy loading property accessors типом RAII? Например, проверьте следующ...

Я хотел бы написатьгенератор объектов для шаблонного класса RAII-в основном шаблон функции для построения объекта с использованием вычитания типа параметров, поэтому типы не должны быть указаны явно. Проблема, которую я предвижу, заключается в том, что вспомогательная функция, которая заботится о дедукции...

Вопрос: Является ли использование исключений правильным способом завершить работу моей программы, если все, что я хочу, это вывести сообщение об ошибке и закрыть (учитывая, что я могу быть глубоко в программе)? Могу ли я просто явно вызвать что-то вроде exit() вместо этого? Что я сейчас делаю: Я работаю ...

мне нужно вручную позвонить close() когда я использую std::ifstream? например, в коде: std::string readContentsOfFile(std::string fileName) { std::ifstream file(fileName.c_str()); if (file.good()) { std::stringstream buffer; buffer << file.rdbuf(); file.close(); return b...

то, что я часто использовал в C++, позволяло классу A обрабатывать состояние входа и выхода условие для другого класса B, через A конструктор и деструктор, чтобы убедиться, что если что-то в этой области вызвало исключение, то B будет иметь известное состояние при выходе из области. Это не чистый RAII, наскол...