es
Feedback
Библиотека C/C++ разработчика

Библиотека C/C++ разработчика

Ir al canal en Telegram

Полезные материалы по всему, что может быть полезно плюсовику/сишнику. По всем вопросам @evgenycarter

Mostrar más
7 322
Suscriptores
-324 horas
+57 días
+1230 días
Archivo de publicaciones
#вакансия #удалённо #parttime #remote #parttime #C++ #преподаватель 🦉  OTUS ищет преподавателей на онлайн-курс: С++ Developer Professional Мы расширяем команду экспертов (уже более 600 человек). Преподавательский опыт не обязателен — мы научим вас всему, что нужно! Требуется: - Опыт коммерческой разработки на C++ от 3 лет. Опыт многопоточного и асинхронного программирования. Обязанности: - подготовиться к занятиям (темы на выбор, материалы предоставляются) - преподавать в mts-link.ru, уделяя большое внимание практике. Здесь вы сможете развивать навыки публичных выступлений, работы с аудиторией и подачи обратной связи. Условия: ✅ гибкий график, легко совмещать с основной работой, занятия в вечернее время; ✅  оплата от 4000 до 6000 руб. за 1,5 часа занятия; ✅ бонусы: доступ к нашим курсам, нетворкинг, развитие личного бренда, бесплатные воркшопы и конференции для наших преподавателей. Обсудить подробнее: @candyfox24

Время разобраться с std::chrono Видео о std::chrono, в котором представлен обзор функциональности, добавленной в C++11, C++17 и C++20. Посмотрите, чтобы узнать, какую часть chrono поддерживает ваш компилятор. Мы были очень удивлены тем, что обнаружили. источник #cpp #programming 👉 @cpp_lib

Хотите прокачать навыки DevOps и успешно вкатиться в IT? Начните с актуального инструмента! GitLab CI/CD — один из ключевых и
Хотите прокачать навыки DevOps и успешно вкатиться в IT? Начните с актуального инструмента! GitLab CI/CD — один из ключевых инструментов для автоматизации разработки. Его используют в компаниях от стартапов до корпораций. На курсе «CI/CD на основе GitLab» вы научитесь развертывать пайплайны, настраивать CI/CD-процессы и работать с Docker и Kubernetes. 🔗 Пройдите вступительное тестирование и получите скидку на обучение. Ваш путь в DevOps начинается здесь https://vk.cc/cJQpYd Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

+9
Базовый курс C++ (MIPT, ILab) Lecture 1. Scent of C++. Lecture 2. Указатели и ссылки Lecture 3. Имена и сущности Lecture 4. Инициализация и копирование. Lecture 5. RAII и перемещение Lecture 6. Приведение типов Lecture 7. Перегрузка операторов Lecture 8. Наследование и полиморфизм Lecture 9. Множественное наследование Lecture 10. Языки и грамматики источник #cpp #programming 👉 @cpp_lib

📌 Оптимизация кода: убираем лишние копирования в C++ Сегодня я покажу вам, как неочевидные копирования объектов могут замедлять ваш код и как этого избежать. Проблема: Лишние копирования Допустим, у нас есть функция, которая возвращает std::vector<int>:

std::vector<int> getVector() {
    std::vector<int> v = {1, 2, 3, 4, 5};
    return v; // Возвращаем объект
}

void process() {
    std::vector<int> data = getVector(); // Возможное копирование
}
Раньше здесь действительно происходило копирование, но начиная с C++11 работает NRVO (Named Return Value Optimization) и перемещение (move). Однако копирования могут появиться, если компилятор не сможет применить NRVO. Например:

std::vector<int> getVector(bool flag) {
    if (flag) {
        std::vector<int> v1 = {1, 2, 3, 4, 5};
        return v1; // NRVO сработает
    } else {
        return {6, 7, 8, 9, 10}; // Но здесь объект создается временно и потом копируется!
    }
}
🔧 Как исправить? Используем std::move или std::optional:

std::vector<int> getVector(bool flag) {
    std::vector<int> v1 = {1, 2, 3, 4, 5};
    std::vector<int> v2 = {6, 7, 8, 9, 10};
    return flag ? std::move(v1) : std::move(v2); // Гарантируем перемещение
}
Или используем std::optional (полезно, если отсутствие значения — валидный вариант):

std::optional<std::vector<int>> getVector(bool flag) {
    if (!flag) return std::nullopt;
    return std::vector<int>{1, 2, 3, 4, 5};
}
Вывод 🔹 Следите за копированием больших объектов. 🔹 Используйте std::move, если данные больше не нужны. 🔹 Проверяйте, оптимизирует ли компилятор ваш код с NRVO. #cpp #programming 👉 @cpp_lib

Пишем калькулятор на C++ с SFML Привет, коллеги и доброжелательные критики! Сегодня я решил отвлечься от своей громоздкой раб
Пишем калькулятор на C++ с SFML Привет, коллеги и доброжелательные критики! Сегодня я решил отвлечься от своей громоздкой работы, чтобы написать что-то простое, но с изюминкой — калькулятор с графическим интерфейсом на C++20 и SFML. Этот проект — не претензия на что-то грандиозное, а скорее лёгкий эксперимент, чтобы вспомнить, как приятно писать код, который сразу видно на экране. Заодно я поделюсь с вами своими мыслями, подходами и парой советов. Давайте разберём, как я это закрутил и почему выбрал именно SFML. https://habr.com/ru/articles/891354/ #cpp #programming 👉 @cpp_lib

😮‍💨Устали вручную разруливать зависимости в C++ проектах? Время автоматизировать процесс! 🕒💻 Пакетные менеджеры Conan и v
😮‍💨Устали вручную разруливать зависимости в C++ проектах? Время автоматизировать процесс! 🕒💻 Пакетные менеджеры Conan и vcpkg позволяют легко управлять библиотеками, устанавливать зависимости и ускорять сборку. Разберем, как это работает, на открытом уроке. Упростите себе жизнь: научитесь использовать пакетные менеджеры, чтобы писать код, а не разбираться с проблемами сборки. Спикер Денис Злобинстарший инженер-программист в Astra Linux, опытный наставник разработчиков. ➡️Встречаемся 20 марта в 20:00 мск, разберем всё на практике! Участники получат скидку на большое обучение по разработке на С++. Регистрация: https://vk.cc/cJOUIw Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

+9
Метапрограммирование 1. Введение в шаблоны 2. C++20: requires keyword 3. C++20: concepts 4. Operator spaceship 5. ADL и CRTP 6 (семинар). Typelist 7. Traits, Policy Based Design, Mixins 8. Полиморфизм 9 (семинар). Реализация std::function 10 (семинар). Реализация std::any без виртуальных функций источник #cpp #programming 👉 @cpp_lib

Что можно знать о C++ в 16 лет? Сегодня мы собеседуем Богдана и проверяем его познания в C++ Проверим, насколько рано можно программировать. Приятного просмотра! источник #cpp #programming 👉 @cpp_lib

Подборка Telegram каналов для программистов https://t.me/bash_srv Bash Советы https://t.me/win_sysadmin Системный Администратор Windows https://t.me/lifeproger Жизнь программиста. Авторский канал. https://t.me/devopslib Библиотека девопса | DevOps, SRE, Sysadmin https://t.me/rabota1C_rus Вакансии для программистов 1С Системное администрирование 📌 https://t.me/sysadmin_girl Девочка Сисадмин https://t.me/srv_admin_linux Админские угодья https://t.me/linux_srv Типичный Сисадмин https://t.me/linux_odmin Linux: Системный администратор https://t.me/devops_star DevOps Star (Звезда Девопса) https://t.me/i_linux Системный администратор https://t.me/linuxchmod Linux https://t.me/sys_adminos Системный Администратор https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало) https://t.me/sysadminof Книги для админов, полезные материалы https://t.me/i_odmin Все для системного администратора https://t.me/i_odmin_book Библиотека Системного Администратора https://t.me/i_odmin_chat Чат системных администраторов https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др. https://t.me/sysadminoff Новости Линукс Linux 1C разработка 📌 https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С https://t.me/DevLab1C 1С:Предприятие 8 Программирование C++📌 https://t.me/cpp_lib Библиотека C/C++ разработчика https://t.me/cpp_knigi Книги для программистов C/C++ https://t.me/cpp_geek Учим C/C++ на примерах Программирование Python 📌 https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍 https://t.me/BookPython Библиотека Python разработчика https://t.me/python_real Python подборки на русском и английском https://t.me/python_360 Книги по Python Rus Java разработка 📌 https://t.me/BookJava Библиотека Java разработчика https://t.me/java_360 Книги по Java Rus https://t.me/java_geek Учим Java на примерах GitHub Сообщество 📌 https://t.me/Githublib Интересное из GitHub Базы данных (Data Base) 📌 https://t.me/database_info Все про базы данных Мобильная разработка: iOS, Android 📌 https://t.me/developer_mobila Мобильная разработка https://t.me/kotlin_lib Подборки полезного материала по Kotlin Фронтенд разработка 📌 https://t.me/frontend_1 Подборки для frontend разработчиков https://t.me/frontend_sovet Frontend советы, примеры и практика! https://t.me/React_lib Подборки по React js и все что с ним связано Разработка игр 📌 https://t.me/game_devv Все о разработке игр Библиотеки 📌 https://t.me/book_for_dev Книги для программистов Rus https://t.me/programmist_of Книги по программированию https://t.me/proglb Библиотека программиста https://t.me/bfbook Книги для программистов https://t.me/books_reserv Книги для программистов БигДата, машинное обучение 📌 https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning Программирование 📌 https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций https://t.me/coddy_academy Полезные советы по программированию https://t.me/rust_lib Полезный контент по программированию на Rust https://t.me/golang_lib Библиотека Go (Golang) разработчика https://t.me/itmozg Программисты, дизайнеры, новости из мира IT https://t.me/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻 https://t.me/nodejs_lib Подборки по Node js и все что с ним связано https://t.me/ruby_lib Библиотека Ruby программиста QA, тестирование 📌 https://t.me/testlab_qa Библиотека тестировщика Шутки программистов 📌 https://t.me/itumor Шутки программистов Защита, взлом, безопасность 📌 https://t.me/thehaking Канал о кибербезопасности https://t.me/xakep_2 Хакер Free Книги, статьи для дизайнеров 📌 https://t.me/ux_web Статьи, книги для дизайнеров Математика 📌 https://t.me/Pomatematike Канал по математике https://t.me/phis_mat Обучающие видео, книги по Физике и Математике Excel лайфхак📌 https://t.me/Excel_lifehack https://t.me/tikon_1 Новости высоких технологий, науки и техники💡 https://t.me/mir_teh Мир технологий (Technology World) Вакансии 📌 https://t.me/sysadmin_rabota Системный Администратор https://t.me/progjob Вакансии в IT

Реальный кейс: создание REST API движка на С++ История, полная ошибок и боли белорусских разработчиков, которая поможет вам и
Реальный кейс: создание REST API движка на С++ История, полная ошибок и боли белорусских разработчиков, которая поможет вам избежать типичных проблем при создании REST API. Узнайте, стал ли этот проект успешным, на бесплатном вебинаре «Движок REST API на C++. Кейс компании СКБ Радиотехпроект (SKB RTP)». Разберём: 1. Зачем писать свой движок REST 2. Swagger в C++ как fail 3. Почему Rest это не просто url — это философия 📆Когда: 25 марта в 19:00 Спикер: Юрий Вашинко, Tech Lead/Lead Developer 👉 Занять место на вебинаре — через бота. В конце вебинара — подарок🎁 Вебинар проходит в рамках курса «Разработчик С++20». #реклама О рекламодателе erid: 2W5zFHANXz8

CMake: Настройка проекта, подключение библиотек и мучения с Vulkan
Oh, and the documentation: It's extensive but never tells me what I need to know.
Эта цитата взята из обсуждения CMake на Reddit, и она очень точно описывает большую часть моих проблем с CMake: когда я хочу что-то сделать, документация не помогает с этим вообще, - приходится искать решения в чужих проектах и статьях. В этой статье будут разобраны проблемы, с которыми я столкнулся в процессе изучения Vulkan. Однако материал будет полезен и тем, кто настраивает любой другой проект. https://habr.com/ru/articles/873798/ #cpp #programming 👉 @cpp_lib

🔥 Оптимизация кода на C++: Ранний возврат вместо вложенных условий Привет, друзья! Сегодня хочу поговорить об одной важной технике, которая делает код чище и читабельнее — ранний возврат (early return). Часто встречаю код, который уходит в глубину вложенных if, превращаясь в настоящий лабиринт. Давайте разберем, как этого избежать. ❌ Плохой пример: Вложенные условия

void process(int value) {
    if (value > 0) {
        if (value % 2 == 0) {
            if (value < 100) {
                std::cout << "Обрабатываем " << value << std::endl;
            } else {
                std::cout << "Слишком большое число" << std::endl;
            }
        } else {
            std::cout << "Нечетное число" << std::endl;
        }
    } else {
        std::cout << "Отрицательное число" << std::endl;
    }
}
Здесь код уходит вглубь из-за множества вложенных if, что делает его сложным для чтения. ✅ Хороший пример: Ранний возврат

void process(int value) {
    if (value <= 0) {
        std::cout << "Отрицательное число" << std::endl;
        return;
    }
    if (value % 2 != 0) {
        std::cout << "Нечетное число" << std::endl;
        return;
    }
    if (value >= 100) {
        std::cout << "Слишком большое число" << std::endl;
        return;
    }

    std::cout << "Обрабатываем " << value << std::endl;
}
Теперь код сразу проверяет граничные условия и делает ранний возврат (return), если условия не выполнены. В итоге у нас получился плоский код, который проще читать и сопровождать. 🎯 Вывод: - Избегайте вложенных if, если можно этого не делать. - Используйте ранний возврат, чтобы код был линейным и понятным. - Чем меньше уровней вложенности — тем легче отладка и сопровождение. #cpp #programming 👉 @cpp_lib

Лексический анализ — один из важнейших этапов обработки текста, без которого не обходятся компиляторы, интерпретаторы и даже
Лексический анализ — один из важнейших этапов обработки текста, без которого не обходятся компиляторы, интерпретаторы и даже системы NLP. 💻 На открытом уроке рассмотрим: -Основные алгоритмы и технологии создания приложений для лексического анализа. -Области применения лексического анализа и особенности реализации. -Поиск и определение ошибок в тексте. Создадим простое приложение и разберем алгоритмы, которые помогают анализировать код. 📌 Встречаемся 24 марта в 20:00 мск. Регистрируйтесь и получите гарантированную скидку на курсе «Программист С»: https://vk.cc/cJBPrt Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Не покупайте грузовик для похода за хлебом и другие принципы программирования Мне недавно встретился код вывода количества FP
Не покупайте грузовик для похода за хлебом и другие принципы программирования Мне недавно встретился код вывода количества FPS на экран, написанный начинающим программистом, и в этом коде был базовый класс, класс-потомок, виртуальные функции, конструктор с множеством параметров, variant. Код позволял выводить любое количество счетчиков FPS на экран разными шрифтами, но все, что было на самом деле нужно, это простая функция на 3 строки, считающая количество FPS и выводящая его на экран. https://habr.com/ru/articles/888570/ #cpp #programming 👉 @cpp_lib

Улучшенные версии STL-контейнеров из библиотеки Boost Илья Мещерин В любом учебном курсе по C++, даже начального уровня, обязательно изучают, как устроен std::vector. Детали внутреннего устройства std::vector в подробностях продолжают изучать в вузах, спрашивать на собеседованиях, обсуждать на конференциях. То же самое происходит с контейнерами std::list, std::deque, std::map и std::unordered_map: про их реализацию и особенности внутреннего устройства можно говорить бесконечно долго, про них все еще делают доклады, снимают лекции и пишут статьи. И их продолжают использовать в продакшен-коде даже в самых крупных и известных компаниях. При этом в библиотеке Boost давным-давно есть альтернативные версии контейнеров, которые выигрывают у стандартных по многим показателям. Однако об этих версиях почти никто не знает, о них почти нет лекций, статей и докладов. Пора положить этому конец и разобраться в том, как еще могут быть устроены контейнеры, помимо тех версий из STL, о которых и так все знают. Спикер обсудил внутреннее устройство не таких уж стандартных контейнеров: stable_vector, devector, bimap, circular_buffer, а также интрузивных версий list, map, unordered_map и их разновидностей. источник #cpp #programming 👉 @cpp_lib

👩‍💻 C — это фундамент программирования, а не просто язык. Если вы хотите работать с производительностью, встроенными систем
👩‍💻 C — это фундамент программирования, а не просто язык. Если вы хотите работать с производительностью, встроенными системами и взаимодействием с ОС — пора его освоить В OTUS в рамках онлайн-курса «Программист С» пройдут бесплатные вебинары для разработчиков, админов и IoT-специалистов: 📌11 марта (вт) в 20:00 мск — открытый урок «Практический Си: Разрабатываем игру-викторину» научит вас работать с памятью, использовать стандартную библиотеку и создавать полноценные консольные приложения. ➡️ Регистрация: https://vk.cc/cJpRPx 📌24 марта(пн) в 20:00 мск — открытый урок «Язык и алгоритмы: Увлекательное путешествие в лексический анализ на C». Разработаем простое приложение для лексического анализа простейшего языка программирования на языке С и рассмотрим: -Основные алгоритмы и технологии создания приложений для лексического анализа. -Области применения лексического анализа и особенности реализации. -Поиск и определение ошибок в тексте. ➡️Регистрация: https://vk.cc/cJpRPx Не упустите возможность протестировать курс и познакомиться с экспертами. Полный курс можно будет оплатить любым удобным для вас способом. Для участия нужно пройти тест на странице с описанием курса. Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

📌 5 способов ускорить компиляцию C++ проекта Всем доброго вечера, или утра✌️Компиляция C++ — боль, особенно на больших проектах. Сегодня расскажу, как ускорить этот процесс. 🚀 1. Используйте ccache 🔹 ccache кеширует результаты компиляции и повторно использует их при неизменности исходного кода. 🔹 Установка (Linux/macOS):

sudo apt install ccache  # для Ubuntu
brew install ccache  # для macOS
🔹 Использование:

export CC="ccache g++"
export CXX="ccache g++"
⚡ 2. Включите -j в make 🔹 Используйте make -jN, где N — количество потоков. Например:

make -j$(nproc)  # на Linux
make -j$(sysctl -n hw.ncpu)  # на macOS
🔹 Это позволяет компилятору использовать несколько ядер процессора. 🔥 3. Используйте pch (предкомпилированные заголовки) 🔹 Если у вас много инклудов в .cpp файлах, создайте pch файл:

// stdafx.h
#include <iostream>
#include <vector>
#include <map>

g++ -o stdafx.pch stdafx.h
🔹 Теперь подключайте stdafx.pch вместо кучи инклудов. 💨 4. Разделяйте сборку на модули 🔹 Используйте Unity Build (объединение нескольких .cpp в один). 🔹 Или попробуйте C++ модули (`export module`) в новых компиляторах. 🏎️ 5. Собирайте в Release с оптимизациями 🔹 Используйте -O2 или -O3, если важна скорость. 🔹 Для дебага — -Og:

g++ -Og -g main.cpp -o main
Как вы ускоряете сборку? Пишите в комментариях! 🚀 #cpp #programming 👉 @cpp_lib

Плывущий экран. Вирус на C++. Melting Screen Программа предоставлена в образовательных целях! Автор не несёт ответственности за её использование! В этом видео вы узнаете как написать вирус на с++ который заставляет экран сыпаться и плыть. источник #cpp #programming 👉 @cpp_lib

C++ Russia 2025 — конференция с техническими докладами про перформанс, оптимизации, многопоточность и инструменты С++ 🧑‍💻 1
C++ Russia 2025 — конференция с техническими докладами про перформанс, оптимизации, многопоточность и инструменты С++ 🧑‍💻 13 марта онлайн 📍 20–21 марта в Москве в отеле «МонАрх» Вас ждут 39 докладов от 47 спикеров о многопоточности, новых стандартах, компиляторах и неочевидных нюансах C++. Практикующие инженеры и техлиды разберут: Оптимизации userver: неожиданные способы ускорения shared_ptr, экономии памяти и балансировки. Type erasure в деталях: как оборачивать полиморфные объекты со «стертыми» типами. Branch prediction: как работает спекулятивное исполнение и как оптимизировать код в критических местах. Больше докладов — в расписании. Билеты уже на сайте. Если оплачиваете самостоятельно — промокод CPPLIB дает скидку 15% на билеты «Для частных лиц». Реклама. ООО «Джуг Ру Груп». ИНН 7801341446