Утилита пригодится, если нужно быстро извлечь текст из скриншота, фото или PDF-страницы.
Что важно знать:
• Работает с картинками;
• Поддерживает русский язык;
• Запускается через терминал.
Простой инструмент для автоматизации, распознавания чеков, объявлений или конспектов без лишней нагрузки.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤7🔥3👎1
Создаём метрические литералы за 1 минуту!
Иногда хочется писать
Используем их так же легко, как числа:
🔥 Код становится самодокументируемым, а арифметика — безопасной и constexpr-чистой.
📣 C++ Ready | #практика
Иногда хочется писать
5_km + 300_m без «магических» коэффициентов. Пользовательские литералы делают это читаемо и проверяемо на этапе компиляции:struct Meter {
double value;
// всегда в метрах
constexpr explicit operator double() const { return value; }
};
constexpr Meter operator"" _m (long double v) { return Meter{static_cast<double>(v)}; }
constexpr Meter operator"" _km(long double v) { return Meter{static_cast<double>(v * 1000)}; }Используем их так же легко, как числа:
constexpr Meter d = 5.0_km + 300.0_m; // 5300 м на этапе компиляции
static_assert(static_cast<double>(d) == 5300.0);
std::cout << d.value << " m\n"; // вывод: 5300
🔥 Код становится самодокументируемым, а арифметика — безопасной и constexpr-чистой.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤6👍5👎2
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26👍6❤3
👍6❤4🔥3
Он сравнивает сразу все поля и сам генерирует нужные операторы сравнения.
Что важно знать:
• Автоматически создаёт сравнения;
• Поддерживает особые случаи;
• Работает в STL без кода.
<=> упрощает сравнение объектов и отлично работает с современными стандартами и алгоритмами STL.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31👍6❤5🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
На сайте доступно множество уроков и статей — от основ C, алгоритмов, структур данных, до веб-технологий и SQL. Всё структурировано: уровни, задания, поддержка. Даже абсолютный новичок может стартовать и постепенно прокачиваться.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤6🔥5
Constexpr-хеширование FNV-1a: делаем switch по строкам!
Нужен быстрый
Возьмём FNV-1a-хеш, который считается на этапе компиляции:
Теперь можно «переключаться» по строкам так же быстро, как по
🔥 Любые литеральные строки превращаются в константы, а сам
📣 C++ Ready | #практика
Нужен быстрый
switch без std::string_view сравнений? Возьмём FNV-1a-хеш, который считается на этапе компиляции:
// 32-битный constexpr-хеш FNV-1a
constexpr uint32_t fnv1a(char const* s, uint32_t h = 0x811c9dc5) {
return *s ? fnv1a(s + 1, (h ^ uint8_t(*s)) * 0x01000193) : h;
}
#define H(str) fnv1a(str)
Теперь можно «переключаться» по строкам так же быстро, как по
int:void handle(std::string_view cmd) {
switch (fnv1a(cmd.data())) {
case H("start"): /* … */ break;
case H("stop"): /* … */ break;
case H("status"): /* … */ break;
default: /* ? */ break;
}}🔥 Любые литеральные строки превращаются в константы, а сам
switch — чистый O(1) без сравнений символов.Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍9🔥4
Позволяет печатать данные понятно, кратко и безопасно — как в Python, но в C++.
Что важно знать:
• Проверка формата сразу;
• Очень лёгкая сборка;
• Быстрее потоков вывода.
Подходит для CLI, логов и UI — в любом проекте станет читаемым и стабильным.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍7❤6