⚙️ std::atomic_wait / std::atomic_notify_one
Методы std::atomic_wait и std::atomic_notify_one (C++20) позволяют эффективно синхронизировать потоки без активного ожидания (busy-waiting). Они приостанавливают выполнение потока, пока значение атомарной переменной не изменится.
👩💻
@quizcpp
Методы std::atomic_wait и std::atomic_notify_one (C++20) позволяют эффективно синхронизировать потоки без активного ожидания (busy-waiting). Они приостанавливают выполнение потока, пока значение атомарной переменной не изменится.
👩💻
@quizcpp
⚙️ std::stop_token
std::stop_token из (C++20) предоставляет механизм мягкой остановки потоков, позволяя безопасно завершать их работу без принудительного прерывания. Это удобная альтернатива std::atomic или std::condition_variable для управления потоками.
👩💻
@quizcpp
std::stop_token из (C++20) предоставляет механизм мягкой остановки потоков, позволяя безопасно завершать их работу без принудительного прерывания. Это удобная альтернатива std::atomic или std::condition_variable для управления потоками.
👩💻
@quizcpp
🔥1
⚙️ std::format
Метод std::format из заголовка (C++20) предоставляет удобный способ форматирования строк, аналогичный printf, но с безопасностью типов и читаемым синтаксисом.
👩💻
@quizcpp
Метод std::format из заголовка (C++20) предоставляет удобный способ форматирования строк, аналогичный printf, но с безопасностью типов и читаемым синтаксисом.
👩💻
@quizcpp
🔥1
⚙️ std::scope_exit
std::scope_exit из заголовка (C++23) позволяет автоматически выполнять код при выходе из области видимости. Это полезно для освобождения ресурсов и отмены операций без try/catch.
👩💻
@quizcpp
std::scope_exit из заголовка (C++23) позволяет автоматически выполнять код при выходе из области видимости. Это полезно для освобождения ресурсов и отмены операций без try/catch.
👩💻
@quizcpp
🚫 Антипаттерн недели: Использование new и delete вместо smart pointers
В C++ ручное управление памятью с new и delete может привести к утечкам памяти, неопределённому поведению и ошибкам двойного освобождения.
✔️ Используйте std::unique_ptr или std::shared_ptr из , которые автоматически освобождают ресурсы при выходе из области видимости.
👩💻
@quizcpp
В C++ ручное управление памятью с new и delete может привести к утечкам памяти, неопределённому поведению и ошибкам двойного освобождения.
✔️ Используйте std::unique_ptr или std::shared_ptr из , которые автоматически освобождают ресурсы при выходе из области видимости.
👩💻
@quizcpp
👍1
⚙️ std::condition_variable
Класс std::condition_variable в C++ предоставляет механизм для синхронизации потоков, позволяя одному потоку ждать, пока другой поток уведомит его о наступлении определенного события. Это полезно для координации работы нескольких потоков в многопоточных приложениях.
👩💻
@quizcpp
Класс std::condition_variable в C++ предоставляет механизм для синхронизации потоков, позволяя одному потоку ждать, пока другой поток уведомит его о наступлении определенного события. Это полезно для координации работы нескольких потоков в многопоточных приложениях.
👩💻
@quizcpp
⚙️ std::identity
std::identity (C++20) — функциональный объект, который возвращает переданный ему аргумент без изменений. Полезен для адаптации алгоритмов.
👩💻
@quizcpp
std::identity (C++20) — функциональный объект, который возвращает переданный ему аргумент без изменений. Полезен для адаптации алгоритмов.
👩💻
@quizcpp
❓ Вопрос на собеседовании
Как работает expression SFINAE в C++, и чем оно отличается от обычного SFINAE?
Ответ ⬇️
SFINAE (Substitution Failure Is Not An Error) позволяет компилятору отбрасывать неподходящие шаблонные перегрузки без генерации ошибок. Expression SFINAE — это техника, когда проверяется не только наличие типа, но и возможность вызова выражения с ним.
Обычный SFINAE работает с typename, а expression SFINAE используется в decltype() для проверки существования конкретных операций или методов в типе.
Пример использования ⚙️
#include
#include
// Проверяем, есть ли у типа метод size()
template
auto has_size(int) -> decltype(std::declval().size(), std::true_type{}) {
return {};
}
template
std::false_type has_size(...) { return {}; }
int main() {
std::cout
@quizcpp
Как работает expression SFINAE в C++, и чем оно отличается от обычного SFINAE?
Ответ ⬇️
SFINAE (Substitution Failure Is Not An Error) позволяет компилятору отбрасывать неподходящие шаблонные перегрузки без генерации ошибок. Expression SFINAE — это техника, когда проверяется не только наличие типа, но и возможность вызова выражения с ним.
Обычный SFINAE работает с typename, а expression SFINAE используется в decltype() для проверки существования конкретных операций или методов в типе.
Пример использования ⚙️
#include
#include
// Проверяем, есть ли у типа метод size()
template
auto has_size(int) -> decltype(std::declval().size(), std::true_type{}) {
return {};
}
template
std::false_type has_size(...) { return {}; }
int main() {
std::cout
@quizcpp
⚙️ std::from_chars
std::from_chars (C++17) позволяет эффективно преобразовывать строку в число без лишних аллокаций и проверок исключений, что делает его быстрее std::stoi.
👩💻
@quizcpp
std::from_chars (C++17) позволяет эффективно преобразовывать строку в число без лишних аллокаций и проверок исключений, что делает его быстрее std::stoi.
👩💻
@quizcpp
⚙️ std::bind_front
std::bind_front (C++20) позволяет частично привязать первые аргументы функции или функторов, создавая удобные сокращённые вызовы.
👩💻
@quizcpp
std::bind_front (C++20) позволяет частично привязать первые аргументы функции или функторов, создавая удобные сокращённые вызовы.
👩💻
@quizcpp
⚙️ std::countr_zero
std::countr_zero (C++20) считает количество нулевых бит в конце двоичного представления числа. Полезно для работы с битовыми операциями и оптимизаций.
👩💻
@quizcpp
std::countr_zero (C++20) считает количество нулевых бит в конце двоичного представления числа. Полезно для работы с битовыми операциями и оптимизаций.
👩💻
@quizcpp
Кризис в диджитал
Все говорят о кризисе: бюджеты режут, рынок сжимается, конкуренция растёт. В digital это ощущается сильнее всего – давление на эффективность и сроки стало нормой. Но паника ничего не меняет.
Мы видим ситуацию иначе. Когда рынок штормит, выигрывают не те, у кого больше ресурсов, а те, кто умеет быстро перестраиваться, усиливать процессы и работать точнее.
Мы знаем, как проходить спад: что оптимизировать, что автоматизировать, какие метрики реально важны, что помогает удерживать клиентов, а что – только создаёт иллюзию контроля.
В итоге несколько авторов digital-каналов решили объединиться и собрать всё полезное в одну папку — «Документы для тех, кто в digital»
🔴 Там 30 файлов, которые помогают выстроить управление, аналитику и внутренние процессы:
– Мотивация сотрудников в IT,
– Контроль сроков диджитал-проекта,
– Шаблон CSI,
– Фреймворк для проведения исследований через ИИ,
– Как создать продающее КП.
📂 Ссылка на папку: https://t.iss.one/addlist/mUVeZHwtrzc0NWYy
А чтобы добавить немного азарта — среди подписавшихся разыграют:
🥇 iPhone Air;
🥈 Яндекс Станцию Лайт 2;
🥉 HUAWEI Freebuds 5.
Как участвовать:
1. Подпишись на папку: https://t.iss.one/addlist/mUVeZHwtrzc0NWYy
2. Подтверди участие в боте
🗓 Итоги — 25 ноября.
Все говорят о кризисе: бюджеты режут, рынок сжимается, конкуренция растёт. В digital это ощущается сильнее всего – давление на эффективность и сроки стало нормой. Но паника ничего не меняет.
Мы видим ситуацию иначе. Когда рынок штормит, выигрывают не те, у кого больше ресурсов, а те, кто умеет быстро перестраиваться, усиливать процессы и работать точнее.
Мы знаем, как проходить спад: что оптимизировать, что автоматизировать, какие метрики реально важны, что помогает удерживать клиентов, а что – только создаёт иллюзию контроля.
В итоге несколько авторов digital-каналов решили объединиться и собрать всё полезное в одну папку — «Документы для тех, кто в digital»
– Мотивация сотрудников в IT,
– Контроль сроков диджитал-проекта,
– Шаблон CSI,
– Фреймворк для проведения исследований через ИИ,
– Как создать продающее КП.
📂 Ссылка на папку: https://t.iss.one/addlist/mUVeZHwtrzc0NWYy
А чтобы добавить немного азарта — среди подписавшихся разыграют:
🥇 iPhone Air;
🥈 Яндекс Станцию Лайт 2;
🥉 HUAWEI Freebuds 5.
Как участвовать:
1. Подпишись на папку: https://t.iss.one/addlist/mUVeZHwtrzc0NWYy
2. Подтверди участие в боте
🗓 Итоги — 25 ноября.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
⚙️ std::byteswap
std::byteswap (C++23) меняет порядок байтов числа, что полезно для работы с big-endian и little-endian системами.
👩💻
@quizcpp
std::byteswap (C++23) меняет порядок байтов числа, что полезно для работы с big-endian и little-endian системами.
👩💻
@quizcpp