С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Внедрение DLL в EXE https://www.cyberforum.ru/ cpp/ thread1787895.html
Здравствуйте, хочу написать свой объединитель exe и dll. Подскажите, как это можно сделать так, чтобы можно было при запуске использовать dll без записи на диск
Как создать оконную программу на c++ exe C++
Можно по подробние как создать оконную программу на c++ exe . Я только что перешол на c++ из Bash (cmd , bat , командная строка ) и как то не хочется опять возвращатся к консольным программам . Я незнаю еще не каких команд для C++ и не знаю не каких компеляторов но хотелось бы создать хотяюы самую простую оконную программу без всяких функций что бы просто открылось пустое окно . Вы поможите ? И...
C++ Не выделяется память https://www.cyberforum.ru/ cpp/ thread1787351.html
Здравствуйте, пытаюсь выделить память, на одном компьютере работает, на другом нет, возвращает 0x00000000, хотя память имеется в наличии. В чём может быть причина? size_t size = 1586753967; void* b = malloc(size); free(b); Добавлено через 6 минут errno = ENOMEM, хотя памяти доступно 4,2 ГБ Добавлено через 2 минуты
C++ Стек и куча https://www.cyberforum.ru/ cpp/ thread1786739.html
Вот говорят, что для стека доступного места меньше, чем для кучи. И если есть много переменных большого размера, то лучше создавать их через new. а почему так?
Программа для отправки сообщения C++
Привет всем. Может кто помочь? Задача следующая. Есть сервер, к которому подключается 10 человек. На этом сервере лежат 10 именных папок (по имени участника). Когда кто-то один из участников перекидывает со своей папки второму участнику, то в это время второму участнику должно автоматически прийти сообщение на почту, что "в такое время, такой участник перекинул вам файл." Как можно сделать...
C++ Побитовый сдвиг с заполнением нулями Как реализовать побитовый сдвиг с заполнением нулями, есть такой код на JS for (var b = 0; 256 > b; b++) { for (var c = b, d = 0; 8 > d; d++) c = c & 1 ? c >>> 1 ^ 3988292384 : c >>> 1; m.crc_table = c } https://www.cyberforum.ru/ cpp/ thread1786560.html
C++ Это что за паттерн? https://www.cyberforum.ru/ cpp/ thread1786559.html
Вообщем писал я код писал и наваял нечто такое: #include <iostream> #include <memory> //====================================================================== class Base { public:
C++ Ошибка сегментирования при доступе к переменным класса
Имею: - CentOS - gcc 4.8 - Собственный класс - В этом классе есть объект = указатель на другой класс (назовем его log). - В log есть ряд переменных в private - Для получения их значений создаю ряд методов get....value() Проблема. В определенных местах кода, при вызове get...value() получаю ошибку сегментирования. Ссылка на класс 100% рабочая. Ошибка вылетает исключительно только...
C++ Где взять Gprof под windows? https://www.cyberforum.ru/ cpp/ thread1786193.html
Где можно найти gprof под windows. Не смог найти, файл gnome.out сгенерировался, а как его проанализировать?
C++ Программа - роутер, раздающая wi-fi с ноута ПРЕДИСЛОВИЕ Здравствуйте! Есть задача написать простенькую программа которая раздает wi-fi с ноута с помощью команды nesth или чего-нибудь другого, если оно вообще есть. Я уже писал такую программку, но только на pascal. Довольно примитивная, со скудным функционалом, однако функцию свою выполняет. uses crt,sysutils,dos,mouse; const nf='WiFiCFG.bat'; var x1,y1,x2,y2,i:integer; https://www.cyberforum.ru/ cpp/ thread1786000.html
C++ Является ли адаптер контейнера контейнером
75%, но некоторые вопросы вызывают недоверие. Например вопрос про стандартные контейнеры (нужно выбрать стандартные контейнеры из списка), один из вариантов std::queue, вот и думай - то ли автор вопроса плохо знает С++ и нужно выбрать std::queue, то ли автор знает С++ на достаточном уровне и std::queue выбирать не надо (т.к. это не контейнер, а адаптер). Другие вопросы тоже можно покритиковать. ...
C++ Ищу описание Pocketsphinx https://www.cyberforum.ru/ cpp/ thread1784787.html
Можете дать хорошее описание ( туториал ) по pocketsphinx. Просто у меня весьма туго с английским
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
01.08.2016, 11:33 0

С++ идиомы - C++ - Ответ 9419136

01.08.2016, 11:33. Показов 118724. Ответов 34
Метки (Все метки)

Ответ

Scope Guard

Задачи:
Гарантировать освобождение ресурсов при возникновении исключения, но не освобождать ресурсы при нормальном завершении.
Предоставить базовую гарантию безопасности исключений.

Мотивация:
Идиома RAII позволяет захватывать ресурсы в конструкторе и освобождать их в деструкторе, при достижении конца области видимости или из-за исключения. В RAII ресурс освобождает всегда. Это может быть не очень гибким решением. Может потребоваться освободить ресурсы в случае возникновения исключения и не освобождать при нормальном завершении.

Решение и пример кода:
Типичная реализация идиомы RAII с проверкой необходимости освобождения ресурса.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class ScopeGuard
{
public:
  ScopeGuard () 
   : engaged_ (true) 
  { /* Захват ресурса */ }
  
  ~ScopeGuard ()  
  { 
    if (engaged_) 
     { /* Освобождение ресурса */} 
  }
  void release () 
  { 
     engaged_ = false; 
     /* Ресурс не будет освобожден в деструкторе */ 
  }
private:
  bool engaged_;
};
void some_init_function ()
{
  ScopeGuard guard;
  // В случае возникновения исключения ресурс будет освободжен
  // прим. переводчика: в случае каких-то других ошибок мы можем просто выйти из функции, ресурс также будет освобожден
  guard.release (); // При нормальном завершении ресурс освобождать не нужно
}


Вернуться к обсуждению:
С++ идиомы C++
9
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.08.2016, 11:33
Готовые ответы и решения:

С++ идиомы - обсуждение
Тема создана для вопросов и обсуждений С++ идиом

Как и какие идиомы и паттерны можно (и лучше) применять?
Здравствуйте. Писал я проги для себя ну и так по мелочи, для абы кого, да и проги абы как, не...

Идиомы программирования
диома программирования — это некоторое часто применяемое действие в прораммировании. Это самый...

Английские идиомы: как правильно перевести in its own right?
Как правильно перевести in its own right? Например, вот в таком контексте: Добавлено через 3...

34
01.08.2016, 11:33
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru