🔥 Highlight — must-have расширение для VS Code
Если надоело искать
😎 Что умеет:
• Подсвечивает TODO, FIXME, NOTE, HACK и другие маркеры прямо в коде
• Настраиваемые цвета и стили для каждого типа комментариев
• Поддерживает кастомные регулярки для своих меток
• Работает со всеми языками, включая C++
✍️ Пример использования:
Все эти комментарии будут выделены разными цветами — красным для FIXME, жёлтым для TODO и т.д.
❗️Особенно полезно в больших проектах, где легко забыть о временных хаках. Устанавливается в пару кликов, настраивается через
👉 Ссылка на расширение
Библиотека C/C++ разработчика
#буст
Если надоело искать
TODO и FIXME в коде, то расширение Highlight превратит их в яркие цветные метки, которые невозможно пропустить.😎 Что умеет:
• Подсвечивает TODO, FIXME, NOTE, HACK и другие маркеры прямо в коде
• Настраиваемые цвета и стили для каждого типа комментариев
• Поддерживает кастомные регулярки для своих меток
• Работает со всеми языками, включая C++
✍️ Пример использования:
// TODO: оптимизировать этот алгоритм
// FIXME: утечка памяти здесь
// NOTE: важное замечание про thread-safety
Все эти комментарии будут выделены разными цветами — красным для FIXME, жёлтым для TODO и т.д.
❗️Особенно полезно в больших проектах, где легко забыть о временных хаках. Устанавливается в пару кликов, настраивается через
settings.json.👉 Ссылка на расширение
Библиотека C/C++ разработчика
#буст
❤6👍4❤🔥1
Инициализация ресурсов в многопоточном приложении — классическая головная боль.
std::call_once решает эту проблему элегантно: гарантирует вызов функции ровно один раз, даже если несколько потоков пытаются сделать это одновременно. Забудьте про ручные мьютексы и double-checked locking с их подводными камнями.#include <mutex>
#include <memory>
#include <iostream>
class DatabaseConnection {
public:
static DatabaseConnection& getInstance() {
// std::call_once гарантирует однократный вызов лямбды
// даже при конкурентном доступе из разных потоков
std::call_once(initFlag, []() {
instance.reset(new DatabaseConnection());
std::cout << "Database initialized\n";
});
return *instance;
}
void query(const std::string& sql) {
std::cout << "Executing: " << sql << "\n";
}
// Запрещаем копирование и перемещение
DatabaseConnection(const DatabaseConnection&) = delete;
DatabaseConnection& operator=(const DatabaseConnection&) = delete;
private:
DatabaseConnection() {
// Тяжелая инициализация: подключение к БД,
// загрузка конфигурации и т.д.
}
static std::once_flag initFlag; // Флаг для call_once
static std::unique_ptr<DatabaseConnection> instance;
};
// Определение статических членов
std::once_flag DatabaseConnection::initFlag;
std::unique_ptr<DatabaseConnection> DatabaseConnection::instance;
std::call_once сам блокирует конкурентные вызовыИспользуете std::call_once в продакшене? Какие кейсы у вас?
Библиотека C/C++ разработчика
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6😁1
⚙️ Новый релиз OpenMW 0.50.0: улучшенная поддержка геймпадов и интерфейс
Разработчики игрового движка
❗ Основные изменения:
• Значительное улучшение навигации с геймпадом
• Исправления интерфейса и механики игры
• Оптимизация для портативных устройств и современных разрешений
• Продолжение работы над совместимостью и стабильностью
Это обновление открывает новые возможности для тех, кто любит играть в Morrowind на современном оборудовании, делая процесс более комфортным и интуитивным.
👉 Gitlab
👉 Заметки по релизу
Библиотека C/C++ разработчика
#буст
Разработчики игрового движка
OpenMW, реимплементированного движка для Morrowind с открытым исходным кодом, выпустили долгожданную версию 0.50.0. Это масштабное обновление, ориентированное на повышение удобства игры на современных платформах, включая портативные устройства вроде Steam Deck. Особое внимание уделено улучшенной поддержке геймпадов и новому интерфейсу, специально адаптированному под управление контроллерами.❗ Основные изменения:
• Значительное улучшение навигации с геймпадом
• Исправления интерфейса и механики игры
• Оптимизация для портативных устройств и современных разрешений
• Продолжение работы над совместимостью и стабильностью
Это обновление открывает новые возможности для тех, кто любит играть в Morrowind на современном оборудовании, делая процесс более комфортным и интуитивным.
👉 Gitlab
👉 Заметки по релизу
Библиотека C/C++ разработчика
#буст
❤4😁1
Forwarded from Proglib.academy | IT-курсы
«Стартап-атмосфера» = хаос и переработки, «возможность профессионального роста» = будете работать за четверых. Составили словарь корпоративного новояза и список неудобных вопросов, которые стоит задать на собеседовании, чтобы не попасть в ловушку.
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7👍4
🔥 Опасная ловушка в C++ модулях
Работаете с модулями в C++20/23? Осторожно: один символ может превратить ваш код в некорректный, но компилятор может об этом промолчать.
Представьте: вы создаёте
В чём подвох? При использовании
GCC 15 честно выдаст ошибку: «redeclaring in global module conflicts with import». А вот MSVC спокойно пропустит такой код, оставляя вас с программой, которая работает, но формально нарушает стандарт. Это классический пример того, как тонкости модулей могут стать источником неочевидных багов при переносе кода между компиляторами.
Сталкивались ли вы с неожиданным поведением модулей? Какие компиляторы используете для работы с C++20/23?
👉 Заметка
Библиотека C/C++ разработчика
#буст
Работаете с модулями в C++20/23? Осторожно: один символ может превратить ваш код в некорректный, но компилятор может об этом промолчать.
Представьте: вы создаёте
module unit для модуля A и случайно пишете import A; вместо module A;. Казалось бы, очевидная ошибка. Но если вы используете MSVC — код скомпилируется, слинкуется и запустится без единого предупреждения.В чём подвох? При использовании
module A; ваша реализация функции корректно прикрепляется к модулю A. Но когда вы пишете import A;, функция попадает в глобальный модуль, который содержит все имена, не привязанные к конкретным модулям. Технически это конфликт: функция уже экспортирована из модуля A, а вы пытаетесь определить её заново в глобальном пространстве.GCC 15 честно выдаст ошибку: «redeclaring in global module conflicts with import». А вот MSVC спокойно пропустит такой код, оставляя вас с программой, которая работает, но формально нарушает стандарт. Это классический пример того, как тонкости модулей могут стать источником неочевидных багов при переносе кода между компиляторами.
Сталкивались ли вы с неожиданным поведением модулей? Какие компиляторы используете для работы с C++20/23?
👉 Заметка
Библиотека C/C++ разработчика
#буст
👍5😢4❤1
🎲 Ueli: лаунчер для продуктивных разработчиков
• Ueli — это инструмент быстрого запуска приложений, файлов, папок и веб‑сайтов с помощью клавиатурных сокращений. По сути, это «умный поиск» по вашей системе с массой полезных фишек для разработчиков.
😎 Ключевые возможности:
• Мгновенный запуск приложений: наберите пару букв — и нужное ПО уже открыто
• Поиск файлов и папок: быстро находите любые документы по имени
• Веб‑поиск: введите запрос — и Ueli откроет его в браузере
• Калькулятор: встроенные вычисления прямо в строке поиска
• Поддержка плагинов: расширяйте функционал под свои нужды
• Настройка внешнего вида: меняйте темы, шрифты, прозрачность
👉 Сайт
Есть опыт работы с Ueli? Как вы ускоряете свою работу?
#буст
Библиотека C/C++ разработчика
• Ueli — это инструмент быстрого запуска приложений, файлов, папок и веб‑сайтов с помощью клавиатурных сокращений. По сути, это «умный поиск» по вашей системе с массой полезных фишек для разработчиков.
😎 Ключевые возможности:
• Мгновенный запуск приложений: наберите пару букв — и нужное ПО уже открыто
• Поиск файлов и папок: быстро находите любые документы по имени
• Веб‑поиск: введите запрос — и Ueli откроет его в браузере
• Калькулятор: встроенные вычисления прямо в строке поиска
• Поддержка плагинов: расширяйте функционал под свои нужды
• Настройка внешнего вида: меняйте темы, шрифты, прозрачность
👉 Сайт
Есть опыт работы с Ueli? Как вы ускоряете свою работу?
#буст
Библиотека C/C++ разработчика
👍3
🏢➰ Булевый поиск: как находить «спрятанные» вакансии в LinkedIn, GitHub и Google
В этой статье мы расскажем, как с помощью булевого поиска можно искать
вакансии на
компании и эйчары выкладывают позиции в репозиториях и issues; а также
через Google, находя карьерные страницы компаний, которые плохо
индексируются.
Библиотека C/C++ разработчика
#буст
В этой статье мы расскажем, как с помощью булевого поиска можно искать
вакансии на
LinkedIn и hh.ru (обходя кривые фильтры); на GitHub, где компании и эйчары выкладывают позиции в репозиториях и issues; а также
через Google, находя карьерные страницы компаний, которые плохо
индексируются.
Библиотека C/C++ разработчика
#буст
👍1🔥1
XTML — утилита написанная на C++, предназначенная для обработки шаблонных файлов и генерации динамического HTML.
•
Переменные и плейсхолдеры: определяйте переменные и вставляйте их через {{@varName}}•
Условная логика и циклы: поддерживаются if, else, while для динамической генерации•
Вычисление выражений: математика, строковые операции, работа с массивами•
Функции и модули: определяйте функции в шаблонах или расширяйте через C++ DLLHTML в выражениях: можно генерировать HTML прямо из вычисляемых выражений
Шаблон:
<xtml>
var title = "XTML Example Page";
var a = 15;
var b = 7;
var comparison = expr {
if (a > b) {
print("a is greater than b");
}
else {
print("a is not greater than b");
}
};
</xtml>
<html>
<head>
<title>{{@title}}</title>
</head>
<body>
<p>{{@comparison}}</p>
</body>
</html>
Сборка и вывод:
xtml build template.xtml
<html>
<head>
<title>XTML Example Page</title>
</head>
<body>
<p>a is greater than b</p>
</body>
</html>
Библиотека C/C++ разработчика
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2
🤝 Перестаньте ждать, пока вас найдут: как самому выходить на фаундеров и получать офферы
Рекрутеры тянут неделями, ATS теряет резюме, а фидбека вообще можно не дождаться. Совсем другая история — написать напрямую CTO или тимлиду: ответ приходит за день-два, а созвон назначают сразу. Учимся находить технических лидеров стартапов и продуктовых компаний и писать так, чтобы точно получить ответ.
👉 Статья
Библиотека C/C++ разработчика
#буст
Рекрутеры тянут неделями, ATS теряет резюме, а фидбека вообще можно не дождаться. Совсем другая история — написать напрямую CTO или тимлиду: ответ приходит за день-два, а созвон назначают сразу. Учимся находить технических лидеров стартапов и продуктовых компаний и писать так, чтобы точно получить ответ.
👉 Статья
Библиотека C/C++ разработчика
#буст
🔥3😁1🤔1
⚙️ ObjectBox: встраиваемая БД для C/C++, которая реально быстрая
Если вы устали от SQLite и ищете что-то более производительное для мобильных приложений или IoT-устройств — взгляните на ObjectBox.
📕 Что это за зверь?
Объектно-ориентированная встраиваемая база данных с открытым исходным кодом. Написана на C, но имеет отличные биндинги для C++.
❗ Почему это интересно:
• On-device векторная БД — управление векторными данными и быстрый vector search из коробки
• Минимальные ресурсы — бинарник всего ~1 МБ, идеально для IoT-шлюзов, микроконтроллеров, ECU
• Встроенные связи — отношения между объектами работают нативно
• Статическая типизация — проверки и оптимизации на этапе компиляции
• Автоматические миграции схемы — никаких update-скриптов
• ObjectBox Sync — синхронизация данных между устройствами и серверами
👉 GitHub
🤌 Бонусы для подписчиков:
• Скидка 40% на все курсы Академии
• Розыгрыш Apple MacBook
• Бесплатный тест на знание математики
Библиотека C/C++ разработчика
#буст
Если вы устали от SQLite и ищете что-то более производительное для мобильных приложений или IoT-устройств — взгляните на ObjectBox.
📕 Что это за зверь?
Объектно-ориентированная встраиваемая база данных с открытым исходным кодом. Написана на C, но имеет отличные биндинги для C++.
❗ Почему это интересно:
• On-device векторная БД — управление векторными данными и быстрый vector search из коробки
• Минимальные ресурсы — бинарник всего ~1 МБ, идеально для IoT-шлюзов, микроконтроллеров, ECU
• Встроенные связи — отношения между объектами работают нативно
• Статическая типизация — проверки и оптимизации на этапе компиляции
• Автоматические миграции схемы — никаких update-скриптов
• ObjectBox Sync — синхронизация данных между устройствами и серверами
👉 GitHub
🤌 Бонусы для подписчиков:
• Скидка 40% на все курсы Академии
• Розыгрыш Apple MacBook
• Бесплатный тест на знание математики
Библиотека C/C++ разработчика
#буст
👍3❤🔥2🥰1
🍴 Интеграция с системами сборки
Статья объясняет, почему правильная интеграция системы сборки критична для работы модулей и что должны делать build-системы.
❗️Что нужно от системы сборки:
• генерация полной Compilation Database со всеми модулями
• режим "build BMIs only" для быстрой проверки без полной сборки
• правильные флаги компиляции с -fmodule-file для всех зависимостей
Основной фокус — мост между системой сборки и инструментами анализа кода, и почему модули усложнили эту интеграцию.
Особенно важно для мантейнеров систем сборки (CMake, Bazel, Meson), которые хотят обеспечить first-class поддержку модулей.
Вы поймёте, что модули C++20 нарушили фундаментальное предположение о независимости единиц трансляции, и все инструменты вынуждены адаптироваться к новой реальности.
✏️ Статья
🔹Курс «Алгоритмы и структуры данных»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹Сайт Proglib
Библиотека C/C++ разработчика
#буст
"CMake генерирует Compilation Database, но модули не работают — что не так?" — частый вопрос при настройке инфраструктуры разработки.
Статья объясняет, почему правильная интеграция системы сборки критична для работы модулей и что должны делать build-системы.
❗️Что нужно от системы сборки:
• генерация полной Compilation Database со всеми модулями
• режим "build BMIs only" для быстрой проверки без полной сборки
• правильные флаги компиляции с -fmodule-file для всех зависимостей
Основной фокус — мост между системой сборки и инструментами анализа кода, и почему модули усложнили эту интеграцию.
Особенно важно для мантейнеров систем сборки (CMake, Bazel, Meson), которые хотят обеспечить first-class поддержку модулей.
Вы поймёте, что модули C++20 нарушили фундаментальное предположение о независимости единиц трансляции, и все инструменты вынуждены адаптироваться к новой реальности.
✏️ Статья
🔹Курс «Алгоритмы и структуры данных»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹Сайт Proglib
Библиотека C/C++ разработчика
#буст
👍2❤1