Шаблоны — это не только обобщение типов, но и возможность выполнять вычисления до запуска программы.
Что важно знать:
• Можно считать значения заранее, без запуска программы.
• Ошибки находятся до запуска, ещё при сборке.
• Код работает быстрее за счёт подготовки заранее.
Такой стиль программирования ускоряет выполнение и делает код более надёжным за счёт ранних проверок.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍13❤4🤝2
Небольшая утилита, которая считает 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
❤19🔥9👍5
Класс позволяет связать любой callable, выполнить его в удобный момент, получить результат выполнения через возвращённый future, повторно использовать задачу, обменивать её состояние и освобождать связанный callable в виде std::function.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍7❤6🤝2
Media is too big
VIEW IN TELEGRAM
Платформа охватывает все ключевые аспекты языка, предлагая удобный подход как для новичков, так и для опытных программистов.
Она предлагает пошаговые учебники, практические примеры и онлайн-компилятор для изучения плюсов.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍7🔥4