uz
Feedback
Библиотека C/C++ разработчика | cpp, boost, qt

Библиотека C/C++ разработчика | cpp, boost, qt

Kanalga Telegram’da o‘tish

Все самое полезное для плюсовика и сишника в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/d6cd2932 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17

Ko'proq ko'rsatish
2025 yil raqamlardasnowflakes fon
card fon
19 540
Obunachilar
-824 soatlar
-447 kunlar
-17630 kunlar
Postlar arxiv
🔥 Опасная ловушка в 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++ разработчика #буст
Hammasini ko'rsatish...
👍 5😢 3 1
Repost from TgId: 1727734638
Photo unavailableShow in Telegram
⚠️ «Гибкий график» и «возможность профессионального роста»: что работодатели на самом деле имеют в виду «Стартап-атмосфера» = хаос и переработки, «возможность профессионального роста» = будете работать за четверых. Составили словарь корпоративного новояза и список неудобных вопросов, которые стоит задать на собеседовании, чтобы не попасть в ловушку. 🔗 Читать статью 🏃‍♀️ Proglib Academy #буст
Hammasini ko'rsatish...
😁 7👍 4
Photo unavailableShow in Telegram
🛒 Black Friday от Proglib.academy! Только до 30 ноября — скидка 40% на ВСЕ курсы. Пора добавить в корзину не носки, а новые скиллы: Python, математика для Data Science, AI, алгоритмы и структуры данных, ML. 🎓 Выбирай курс, который реально двинет тебя в карьере, и учись со скидкой. 👉 Учиться со скидкой
Hammasini ko'rsatish...
😁 1
Photo unavailableShow in Telegram
⚙️ Новый релиз OpenMW 0.50.0: улучшенная поддержка геймпадов и интерфейс Разработчики игрового движка OpenMW, реимплементированного движка для Morrowind с открытым исходным кодом, выпустили долгожданную версию 0.50.0. Это масштабное обновление, ориентированное на повышение удобства игры на современных платформах, включая портативные устройства вроде Steam Deck. Особое внимание уделено улучшенной поддержке геймпадов и новому интерфейсу, специально адаптированному под управление контроллерами. ❗ Основные изменения: • Значительное улучшение навигации с геймпадом • Исправления интерфейса и механики игры • Оптимизация для портативных устройств и современных разрешений • Продолжение работы над совместимостью и стабильностью Это обновление открывает новые возможности для тех, кто любит играть в Morrowind на современном оборудовании, делая процесс более комфортным и интуитивным. 👉 Gitlab 👉 Заметки по релизу Библиотека C/C++ разработчика #буст
Hammasini ko'rsatish...
4😁 1
Photo unavailableShow in Telegram
💻 Хочешь MacBook Pro? Просто начни учиться! Да-да, вы не ослышались: Proglib.academy дарит макбук за учёбу! Всё просто: — купи любой курс Академии до 15 ноября; — пройди 2 недели обучения (можно за два дня); — напиши куратору в чате курса хэштег #розыгрыш. 📚 Выбирай свой курс: ▫️ «Математика для DS» — для тех, кто хочет уверенно работать с данными; ▫️ «Основы Python» — чтобы начать писать код с нуля; ▫️ «Алгоритмы и структуры данных» — для будущих инженеров; ▫️ «AI-агенты» или «Машинное обучение» — для тех, кто хочет прокачаться в ИИ. 👉 Участвовать в розыгрыше
Hammasini ko'rsatish...
😁 5
✏️ Потокобезопасная инициализация через std::call_once Инициализация ресурсов в многопоточном приложении — классическая головная боль. 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;
‼️ Ключевые особенности: ✅ Потокобезопасность из коробки — не нужен ручной mutex, std::call_once сам блокирует конкурентные вызовы ✅ Без накладных расходов после первого вызова — последующие вызовы проверяют только атомарный флаг ✅ Исключения не ломают логику — если инициализация бросила exception, флаг не устанавливается и следующий поток попробует снова ✅ Работает с любыми callable — лямбды, функции, функторы, std::bind Используете std::call_once в продакшене? Какие кейсы у вас? Библиотека C/C++ разработчика #буст
Hammasini ko'rsatish...
👍 6😁 1
Repost from TgId: 1940255915
Что произойдёт, если std::packaged_task будет уничтожен без вызова?Anonymous voting
  • Deadlock на fut.get()
  • Вернёт значение по умолчанию
  • UB
  • fut.get() кинет std::future_error
  • Компиляционная ошибка
0 votes
😁 1
Repost from TgId: 1940255915
Photo unavailableShow in Telegram
Photo unavailableShow in Telegram
💻 ВАЖНО: макбук ещё не забрали! Proglib.academy продолжает розыгрыш MacBook Pro 14» (M3 Pro, 36 Гб, 1 Тб SSD). Что нужно для участия? — Берёшь любой курс Академии до 15 ноября. — Проходишь хотя бы 2 недели обучения (можно за два дня). — Пишешь куратору #розыгрыш. Всё — ты в игре! Что за курсы? ▫️Алгоритмы и структуры данных — если хочешь готовиться к собесам в Яндекс, FAANG и не сидеть на джуне вечно. ▫️Архитектуры и шаблоны проектирования — учат думать как senior, а не просто писать код. ▫️ Python, математика для DS, основы IT и другие темы — можно стартовать с нуля или усилить то, что уже знаешь. 👉 Влетай, не думай!
Hammasini ko'rsatish...
😁 2
🔧Видео: 5 способов улучшить C++ код Нам часто приходится думать об оптимизации написанных нами приложений. Автор канала The Cherno разбирает пять вариантов для решения данной задачи. ✍️ Разбираем типичные ошибки и оптимизируем код: ✅ Перечисления вместо строк для типов ресурсов ✅ UUID вместо строковых идентификаторов ✅ Чистый код в синглтонах (delete безопасен с nullptr) ✅ Минимум shared_ptr — используйте стек и ссылки ✅ Правильная семантика владения объектами 👉 Видео Библиотека C/C++ разработчика #линкер_рекомендует
Hammasini ko'rsatish...
👍 3
Repost from TgId: 1162036880
Photo unavailableShow in Telegram
😁 22
Photo unavailableShow in Telegram
🔥 Highlight — must-have расширение для VS Code Если надоело искать TODO и FIXME в коде, то расширение Highlight превратит их в яркие цветные метки, которые невозможно пропустить. 😎 Что умеет: • Подсвечивает TODO, FIXME, NOTE, HACK и другие маркеры прямо в коде • Настраиваемые цвета и стили для каждого типа комментариев • Поддерживает кастомные регулярки для своих меток • Работает со всеми языками, включая C++ ✍️ Пример использования:
// TODO: оптимизировать этот алгоритм
// FIXME: утечка памяти здесь
// NOTE: важное замечание про thread-safety
Все эти комментарии будут выделены разными цветами — красным для FIXME, жёлтым для TODO и т.д. ❗Особенно полезно в больших проектах, где легко забыть о временных хаках. Устанавливается в пару кликов, настраивается через settings.json. 👉 Ссылка на расширение Библиотека C/C++ разработчика #буст
Hammasini ko'rsatish...
6👍 4❤‍🔥 1
Repost from TgId: 1770516712
В каком случае std::unique_ptr может утечь?Anonymous voting
  • При копировании
  • При вызове release()
  • При move
  • При выходе из scope
  • Никогда не может
0 votes
😁 3
Photo unavailableShow in Telegram
🎁 И мозг прокачать, и макбук утащить! Proglib.academy разыгрывает MacBook Pro 14 (M3 Pro, 36 GB, 1 TB SSD) 💻 Условия: 1️⃣ Покупаешь любой курс Proglib до 15 ноября. 2️⃣ Проходишь минимум 2 учебные недели (можно осилить за два вечера). 3️⃣ Пишешь куратору в чат своего курса: #розыгрыш. Что за курсы?Математика для Data Science (6 месяцев боли и просветления). — Основы Python, ML, алгоритмы, AI-агенты и даже курс для тех, кто в IT, но не кодит. 👉 Участвовать в розыгрыше
Hammasini ko'rsatish...
❤‍🔥 1😁 1
🐸 Подборка вакансий для C++-разработчиков за неделю C developer — Удалёнка Middle+ / Senior C++ developer — Удалёнка Senior разработчик C++ в команду Core — Удалёнка Middle Разработчик на C/C++ под Linux — от 250 000 и до 300 000 ₽ Главный разработчик С++ — Удалёнка Senior Программист C/С++ — от 400 000 до 600 000 ₽ Гибрид (Москва) Middle С++ Developer — Гибрид (Москва) Software Engineer C/C++ — Гибрид (Москва) Удалёнка Библиотека C/C++ разработчика
Hammasini ko'rsatish...
👍 3
Photo unavailableShow in Telegram
Команда Яндекса — это профессионалы, которые одержимы своим делом и решают задачи, где нет готовых решений. Сейчас мы ищем сильных бэкенд-разработчиков — с опытом от 3 лет на C++, Python, Java или Go. Участвуйте в Week Offer, чтобы получить офер онлайн, всего за неделю. Как будет проходить Week Offer Backend? • Подайте заявку до 12 ноября. • Пройдите технические секции 15 и 16 ноября. • Познакомьтесь с командами и получите офер 17–21 ноября. Если вам интересно строить полезные сервисы вокруг ИИ-технологий, проводить исследования и превращать их в реальные продукты для миллионов пользователей — переходите по ссылке. На сайте собрали все подробности.
Hammasini ko'rsatish...
3🥱 2😁 1
Photo unavailableShow in Telegram
🧠 Когда mutex — не панацея Многопоточное программирование в C++ часто сводится к простой мантре: «Есть shared data — добавь mutex». Но реальность куда интереснее, и правильная синхронизация требует понимания нюансов. Современный C++ предлагает богатый арсенал примитивов синхронизации. std::mutex решает базовые задачи, но для специфичных сценариев есть более эффективные инструменты. std::shared_mutex (C++17) идеален для ситуаций с частым чтением и редкой записью — классический reader-writer lock. std::atomic обеспечивает lock-free синхронизацию для простых типов, но требует понимания memory ordering. Ключевой момент — гранулярность блокировок. Слишком крупные критические секции убивают параллелизм, слишком мелкие создают оверхед. В high-performance системах часто используют lock-free структуры данных или hybrid подходы: например, thread-local буферы с периодической синхронизацией через lock. Не стоит забывать про std::condition_variable для координации потоков и std::latch/std::barrier (C++20) для более сложных паттернов синхронизации. Правильный выбор примитива может дать разницу в производительности на порядок. А как вы подходите к выбору механизма синхронизации? Полагаетесь на универсальный mutex или анализируете паттерны доступа к данным? Библиотека C/C++ разработчика  #развлекалово
Hammasini ko'rsatish...
5👍 4
Photo unavailableShow in Telegram
Hammasini ko'rsatish...
😁 15😢 1
Repost from TgId: 1770516712
Photo unavailableShow in Telegram
🎮 Плейлист с решением задач с Leetcode Для тех, кто готовится к собеседованиям и хочет прокачать алгоритмическое мышление на C++: отличная подборка — плейлист «Blind 75 C++ Leetcode» с подробными пошаговыми разбором задач. Автор разбирает каждую из самых популярных задач LeetCode с фокусом на реальные паттерны, сложности и подводные камни интервью. 👉 Плейлист Библиотека C/C++ разработчика #линкер_рекомендует
Hammasini ko'rsatish...
👍 5 2
Photo unavailableShow in Telegram
Hammasini ko'rsatish...
😁 9👾 8 2👍 1🥱 1