Он позволяет одному потоку приостановиться и ждать сигнала от другого, обеспечивая безопасное взаимодействие и предотвращая гонки данных. Часто используется вместе с мьютексами, когда нужно согласовать работу нескольких потоков.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26❤5👍3🤝3
В этой статье:
• Пошаговое руководство по написанию парсера на C++ вручную
• Демонстрация библиотеки forward_stream с итераторами и буферизацией
• Примеры calc.cpp и winreg.cpp показывают практическое использование подхода
🔊 Продолжай читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤5🔥4
Шаблоны — это не только обобщение типов, но и возможность выполнять вычисления до запуска программы.
Что важно знать:
• Можно считать значения заранее, без запуска программы.
• Ошибки находятся до запуска, ещё при сборке.
• Код работает быстрее за счёт подготовки заранее.
Такой стиль программирования ускоряет выполнение и делает код более надёжным за счёт ранних проверок.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍13❤4🤝3
Небольшая утилита, которая считает SHA-256 контрольную сумму файла и по желанию сверяет её с эталонным значением.
Важно помнить:
• Утилита вычисляет уникальную подпись для любого файла
• Файл обрабатывается по частям, не загружая всю память
• Можно автоматически проверить соответствие файла эталонному значению
Это позволяет эффективно обрабатывать файлы любого размера и автоматически проверять их целостность
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥8❤6
В курсе подробно разбирается разработка десктопных интерфейсов в Qt Creator: установка и настройка среды, создание окон и виджетов (QPushButton, QRadioButton, QLabel и др.), работа с событиями через сигналы и слоты
Ссылочка на плейлист: YouTube🖤
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥10❤3
Ограничиваем шаблоны через Concepts и requires в C++20!
Шаблоны в C++ мощные, но часто сложно читать ошибки при неправильных типах. С
Вместо шаблонов «на авось» — пишем осмысленные требования!
Допустим, у нас есть функция, которая должна работать только с числовыми типами:
Теперь, если вызвать
Можно использовать
🔥 Это позволяет задавать чёткие ограничения для шаблонов. Программы становятся безопаснее, читаемее и понятнее!
📣 C++ Ready | #практика
Шаблоны в C++ мощные, но часто сложно читать ошибки при неправильных типах. С
Concepts
стало проще: теперь можно явно ограничивать допустимые типы.Вместо шаблонов «на авось» — пишем осмысленные требования!
Допустим, у нас есть функция, которая должна работать только с числовыми типами:
#include <concepts> // std::integral, std::floating_point
#include <iostream>
// Обобщённая функция только для целых чисел
template <std::integral T>
void print_twice(T value) {
std::cout << value << " " << value << '\n';
}
Теперь, если вызвать
print_twice("hello")
— компиляция просто не пройдёт. А с print_twice(42)
— всё отлично.Можно использовать
requires
для более сложной логики:template <typename T>
requires std::floating_point<T>
void print_square(T value) {
std::cout << "Квадрат: " << value * value << '\n';
}
🔥 Это позволяет задавать чёткие ограничения для шаблонов. Программы становятся безопаснее, читаемее и понятнее!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥9❤6