Проверьте пожалуйста и Threading Building Blocks (https://www.threadingbuildingblocks.org/download#stable-releases). Полагаю в Intel проверяют код своим статическим анализатором кода. Будет интересно узнать результаты.
Программисту их надо просто знать, чтобы не изобретать велосипед и уметь применять там, где в этом есть смысл.
Начинающему программисту с ними надо хотя бы ознакомиться, чтобы узнать, что в его любимом языке программирования можно еще и вот такие штуки вытворять. Также начинающему программисту при ознакомлении с паттернами наставник должен сказать о том, что не стоит теперь всё писать используя только паттерны.
Спасибо за интересную статью.
Предполагается ли автоматическая параметризация запущенного приложения в зависимости от доступных ресурсов (например у одного пользователя есть MIC, а у другого только GeForce)?
При работе с этим фреймворком на примере MainComponent::buttonClicked, если на форме есть 15 кнопок, этот метод превращается во многоэтажный if или switch? Или потребуется дополнительно воспользоваться дарами STL/boost для упрощения такой конструкции?
Есть какие-то примеры более сложного приложения?
Нет, этот вариант вполне уместен. Согласно стандарта С++11 в моём примере функция fclose будет вызвана только тогда, когда fopen вернет что-то отличное от nullptr.
1. Requires: The expression get_deleter()(get()) shall be well formed, shall have well-defined behavior,
and shall not throw exceptions.
2. Effects: If get() == nullptr there are no effects. Otherwise get_deleter()(get()).
С указанием функции освобождения ресурса используется не так часто, как без. Да, unique_ptr является частью стандартной библиотеки шаблонов C++11, где и все контейнеры умеют работать с типами, которые можно только перемещать (но не копировать).
Начинающему программисту с ними надо хотя бы ознакомиться, чтобы узнать, что в его любимом языке программирования можно еще и вот такие штуки вытворять. Также начинающему программисту при ознакомлении с паттернами наставник должен сказать о том, что не стоит теперь всё писать используя только паттерны.
Предполагается ли автоматическая параметризация запущенного приложения в зависимости от доступных ресурсов (например у одного пользователя есть MIC, а у другого только GeForce)?
MainComponent::buttonClicked
, если на форме есть 15 кнопок, этот метод превращается во многоэтажный if или switch? Или потребуется дополнительно воспользоваться дарами STL/boost для упрощения такой конструкции?Есть какие-то примеры более сложного приложения?
and shall not throw exceptions.
2. Effects: If get() == nullptr there are no effects. Otherwise get_deleter()(get()).
Поэтому для тех, кто не ждет:
Не хотелось загромождать этим пост, хотя не спорю, что так безопаснее.
unique_ptr
является частью стандартной библиотеки шаблонов C++11, где и все контейнеры умеют работать с типами, которые можно только перемещать (но не копировать).