⚙️ std::byteswap
std::byteswap (C++23) меняет порядок байтов числа, что полезно для работы с big-endian и little-endian системами.
👩💻
@quizcpp
std::byteswap (C++23) меняет порядок байтов числа, что полезно для работы с big-endian и little-endian системами.
👩💻
@quizcpp
🚫 Антипаттерн недели: Использование new и delete вместо std::unique_ptr
В C++ ручное управление памятью с new и delete может привести к утечкам памяти и ошибкам двойного освобождения.
✔️ Используйте std::unique_ptr для автоматического управления ресурсами.
🗣 Почему это важно?
🟢std::unique_ptr автоматически освобождает память, когда объект выходит из области видимости.
🟢Исключает утечки памяти и снижает вероятность ошибок.
🟢Использует семантику перемещения (std::move) для безопасного передачи владения ресурсами.
👩💻
@quizcpp
В C++ ручное управление памятью с new и delete может привести к утечкам памяти и ошибкам двойного освобождения.
✔️ Используйте std::unique_ptr для автоматического управления ресурсами.
🗣 Почему это важно?
🟢std::unique_ptr автоматически освобождает память, когда объект выходит из области видимости.
🟢Исключает утечки памяти и снижает вероятность ошибок.
🟢Использует семантику перемещения (std::move) для безопасного передачи владения ресурсами.
👩💻
@quizcpp
⚙️ std::condition_variable
Класс std::condition_variable в C++ предоставляет механизм для синхронизации потоков, позволяя одному потоку ждать, пока другой поток уведомит его о наступлении определенного события. Это полезно для координации работы нескольких потоков в многопоточных приложениях.
👩💻
@quizcpp
Класс std::condition_variable в C++ предоставляет механизм для синхронизации потоков, позволяя одному потоку ждать, пока другой поток уведомит его о наступлении определенного события. Это полезно для координации работы нескольких потоков в многопоточных приложениях.
👩💻
@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