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

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

Ir al canal en Telegram

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

Mostrar más
7 221
Suscriptores
-524 horas
-217 días
-4430 días
Archivo de publicaciones
Как читать язык ассемблера Зачем кому-то нужно изучать язык ассемблера? Во-первых, чтение языка ассемблера - это способ узнат
Как читать язык ассемблера Зачем кому-то нужно изучать язык ассемблера? Во-первых, чтение языка ассемблера - это способ узнать, что именно делает ваша программа. Почему именно эта программа на Си++ занимает 1 Мб (скажем), а не 100 Кб? Можно ли выжать еще немного производительности из той функции, которая постоянно вызывается? В частности, для языка Си++ легко забыть или просто не заметить какую-либо операцию (например, неявное преобразование или вызов конструктора или деструктора копирования), которая подразумевается исходным кодом и семантикой языка, но не прописана в явном виде. Если посмотреть на ассемблер, сгенерированный компилятором, то все будет на виду. https://wolchok.org/posts/how-to-read-assembly-language/ #cpp #programming 👉 @cpp_lib

📈Хотите, чтобы ваши приложения на C++ работали на максимуме? Присоединяйтесь к открытому уроку «Как сделать ваши приложения
📈Хотите, чтобы ваши приложения на C++ работали на максимуме? Присоединяйтесь к открытому уроку «Как сделать ваши приложения C++ супер-производительными»! На вебинаре вы: — Научитесь использовать инструменты профилирования gprof, valgrind, Google Benchmark. — Овладеете техниками повышения производительности кэша и оптимизации управления памятью. — Узнаете, как использовать оптимизации компилятора для улучшения работы программы. Все участники вебинара получат скидкуна большое обучение «C++ Developer. Professional». 🔥Не упустите шанс улучшить свои навыки и повысить производительность программ! Регистрация открыта: https://vk.cc/cOhlSO Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Компиляторный бенчмаркинг и JIT-компиляция Анастасия Черникова Обсудили инструмент автоматического бенчмаркинга llvm-exegesis и то, какие проблемы он помогает решать. Недавно появилась поддержка RISC-V backend: Анастасия рассказала про ее особенности, реализацию и о том, что еще предстоит сделать. Подробно представила режимы работы и опции запуска, чтобы каждый уже в конце доклада смог полноценно использовать llvm-exegesis для решения своих задач. Бонус: вы познакомитесь сllvm-jit и узнаете, как использовать его в качестве самостоятельного инструмента. 00:00 Начало. RISC-V и LLVM 05:24 Компиляторный бенчмаркинг 09:14 Использование и возможности llvm-exegesis 18:03 История инструмента, его разнообразные применения и его путь в RISC-V 25:22 llvm-jit его устройство и использование: как отдельно так и внутри инструментов 29:56 Ответы на вопросы 35:00 Моё камео: ответ про соотношение llvm-mca и llvm-exegesis. Далее Настя продолжает отвечать сама. источник #cpp #programming 👉 @cpp_lib

C++ изнутри: внутренние механизмы классов Крис Райан — CppCon 2024 В своём докладе я рассмотрю внутренние механизмы C++ по следующим темам: - "Луковица C++": как она соотносится с конструированием, уничтожением объектов и полиморфизмом; - Порядок конструирования и уничтожения объектов, а также обработка до и после выполнения main(); - Указатели на функции-члены (это не те C-указатели на функции, что вы знали раньше); - Указатели на данные-члены (не просто «сырые» указатели) и их "data-morphic" функциональность; - Понимание стека вызовов, кадров стека и механизмов базового указателя (base pointer). источник #cpp #programming 👉 @cpp_lib

🚀 Подборка Telegram каналов для программистов Системное администрирование, DevOps 📌 https://t.me/bash_srv Bash Советы https://t.me/win_sysadmin Системный Администратор Windows https://t.me/sysadmin_girl Девочка Сисадмин https://t.me/srv_admin_linux Админские угодья https://t.me/linux_srv Типичный Сисадмин https://t.me/devopslib Библиотека девопса | DevOps, SRE, Sysadmin 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 https://t.me/razrab_1C 1C Разработчик https://t.me/buh1C_prog 1C Программист | Бухгалтерия и Учёт https://t.me/rabota1C_rus Вакансии для программистов 1С Программирование 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 академия. https://t.me/BookPython Библиотека Python разработчика https://t.me/python_real Python подборки на русском и английском https://t.me/python_360 Книги по Python 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/bigdata_1 Big Data, Machine Learning Программирование 📌 https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций 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 программиста https://t.me/lifeproger Жизнь программиста. Авторский канал. 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 Обучающие видео, книги по Физике и Математике https://t.me/matgeoru Математика | Геометрия | Логика Excel лайфхак📌 https://t.me/Excel_lifehack https://t.me/mir_teh Мир технологий (Technology World) Вакансии 📌 https://t.me/sysadmin_rabota Системный Администратор https://t.me/progjob Вакансии в IT

Dockerизированная toolchain в CLion с Conan При разработке на C++ часто возникает необходимость воспроизводимой среды для сборки. Особенно если проект разрабатывается командой, где у каждого разработчика разные операционные системы и окружения. Тут на помощь приходит Docker. Зачем это нужно? - Единая среда для всех участников команды - Изоляция от локальной системы - Упрощение CI/CD Интеграция с CLion CLion поддерживает удалённые toolchain, включая Docker-контейнеры. То есть вы можете настроить сборку и отладку прямо в IDE, используя контейнер как основную среду. Conan + Docker Conan используется для управления зависимостями. Вместе с Docker это даёт: - Контролируемую установку зависимостей - Воспроизводимость билдов - Возможность легко переключаться между разными окружениями Краткие шаги настройки: 1. Создайте Docker-образ с нужными компиляторами и инструментами. 2. Настройте Toolchains в CLion, указав Docker как удалённую среду. 3. Подключите Conan для управления зависимостями. 4. Собирайте и отлаживайте проект прямо в контейнере. Такой подход особенно полезен для кросс-платформенной разработки и больших командных проектов, где важна стабильность окружения. https://schneide.blog/2025/06/23/dockerized-toolchain-in-clion-with-conan/ #cpp #programming 👉 @cpp_lib

Яндекс проведет C++ Zero Cost Conf — конференцию для C++ разработчиков Когда: 2 августа Место проведения: Москва, Белград, Санкт-Петербург. Мероприятие для всех, кто работает с прикладным C++ и хочет быть в курсе реальных кейсов, подкрепленных метриками. Антон Полухин, руководитель группы разработки общих компонентов в Техплатформе Городских сервисов Яндекса и автор книги Boost C++ Application Development Cookbook, разберет в Москве, как использовать C++20 модули в больших существующих проектах с поддержкой старых стандартов на примерах Boost, libstdc++ и libc++. Константин Владимиров и Владислав Белов, специалисты из Syntacore, обсудят строгий алиасинг, restrict, оптимизации, которые от них зависят, и неожиданные нюансы поведения. А еще — разберут, как это влияет на производительность, и в чём сложности поддержки в компиляторах и в стандарте C++. Ознакомиться со всеми спикерами и темами докладов можно тут. Во всех трёх городах пройдет код-гольф на C++, где нужно решать задачи по программированию, потратив минимальное количество символов на код, а также код-ревью — активность, где нужно искать и править ошибки в коде. В Москве для участников дополнительно проведут воркшоп по системе профилирования Perforator — расскажут про локальный запуск и поднятие своей инсталляции постоянного профилирования, а также покажут, как использовать консольную утилиту perforator record. Регистрация уже открыта.

Ошибки, которые не случились: C++ и compile‑time проверка SQL-запросов В этой статье мы посмотрим, как можно реализовать полн
Ошибки, которые не случились: C++ и compile‑time проверка SQL-запросов В этой статье мы посмотрим, как можно реализовать полную compile‑time валидацию SQL‑запросов на основе схемы базы данных, встраиваемой прямо в код. Без магии, без рантайма, без сторонних тулов. Только стандартный C++ и ваша структура БД. Валидация таблиц, столбцов, типов аргументов и их количества — всё на compile‑time. Представьте, если бы компилятор сам указывал «такой таблицы нет», «несуществующий столбец», «несовместимые типы» — до запуска программы. Такой подход полностью устраняет «сюрпризы» во время исполнения и исключает класс ошибок, связанных с генерацией SQL во время работы программы. Ваша программа даже не соберётся. https://habr.com/ru/articles/929052/ #cpp #programming 👉 @cpp_lib

+5
Эффективное использование С++ Лекция 1. Библиотеки, утилиты, средства разработки, сборка (Эффективное использование С++) Лекция 2. Работа с памятью. Утечки ресурсов. RAII, умные указатели (Эффективное использование С++) Лекция 3. Move semantics, rvalue reference, perfect forwarding. Лекция 4. Callbacks: lambda, bind & function. Лекция 5. Multithreading in C++ (потоки, блокировки, задачи, атомарные операции, очереди сообщений) Лекция 6. Обзор возможностей современных стандартов C++ источник #cpp #programming 👉 @cpp_lib

🦀 Хотите стать Middle Rust-разработчиком? Присоединяйтесь к открытому уроку «Техническое собеседование на Middle Rust разраб
🦀 Хотите стать Middle Rust-разработчиком? Присоединяйтесь к открытому уроку «Техническое собеседование на Middle Rust разработчика» 24 июля в 20:00 МСК. В режиме онлайн разберем: — Типичные вопросы, которые вам зададут на собеседовании. — Задачи, которые дают кандидатам на уровне Middle. — Частые ошибки на собеседованиях и способы их избежать. ❗️Этот урок — отличная подготовка к карьерному росту в разработке. 👉 Записаться на вебинар курса «Rust Developer. Professional»https://vk.cc/cNKKqz Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

+4
Курс по ООП в С++ введение инкапсуляция наследование полиморфизм шаблоны и метапрограммирование источник #cpp #programming 👉 @cpp_lib

Respect++ #cpp #programming 👉 @cpp_lib
+3
Respect++ #cpp #programming 👉 @cpp_lib

17 июля в 19:00 (Мск) приглашаем на онлайн-встречу,посвященную профессиональному развитию в сфере разработки электронных устройств. Наша Академия программирования электронных устройств занимается повышением квалификации инженеров-радиоэлектронщиков. На встрече обсудим: - Кто занимается разработкой электронных устройств сегодня - Самые востребованные направления в отрасли - Актуальные возможности для профессионального старта - Разные форматы работы в этой сфере Также у вас будет возможность: - Получить ответы на свои вопросы от эксперта - Познакомиться с программами дополнительного профессионального образования в этой сфере Регистрируйтесь прямо сейчас – количество мест ограничено! После регистрации Вам придет бонус - "Принципы работы радиоэлектронщиков" Ждем Вас!

Почему C++ считает мой класс копируемым, если его нельзя скопировать? Рассмотрим следующий сценарий: template struct Base { /
Почему C++ считает мой класс копируемым, если его нельзя скопировать? Рассмотрим следующий сценарий:

template<typename T>
struct Base
{
    // Есть конструктор по умолчанию
    Base() = default;

    // Не копируемый
    Base(Base const &) = delete;
};

template<typename T>
struct Derived : Base<T>
{
    Derived() = default;
    Derived(Derived const& d) : Base<T>(d) {}
};

// Это assertion выполняется?
static_assert(
    std::is_copy_constructible_v<Derived<int>>);
Почему выполняется это assertion? Очевидно, что скопировать Derived<int> нельзя, ведь при этом мы попытаемся скопировать некопируемый Base<int>. И в самом деле, если попробовать скопировать его, то мы получим ошибку:

void example(Derived<int>& d)
{
    Derived<int> d2(d);
    // msvc: error C2280: 'Base<T>::Base(const Base<T> &)':
    //       attempting to reference a deleted function
    // gcc:  error: use of deleted function 'Base<T>::Base(const Base<T>&)
    //       [with T = int]'
    // clang: error: call to deleted constructor of 'Base<int>'
}
Итак, компилятор считает, что Derived<int> копируемый, но когда мы пытаемся его скопировать, выясняется, что это не так! https://habr.com/ru/articles/920202/ #cpp #programming 👉 @cpp_lib

Запись System Level MeetUp. Поток C++ Мы встретились, чтобы поговорить об C++ в системной разработке: обсудить стандарты, подходы и реальные задачи, которые решаются на этом языке. 00:00 - Открытие мероприятия. 08:30 - Доклад "Девиртуализация в C++, компиляторах и вашей программе" (Константин Владимиров и Илья Андреев). 47:50 - Вопросы от участников. 01:00:32 - Доклад "Кодек для json'ов с фиксированной схемой" (Никита Пешаков). 01:27:33 - Вопросы от участников. 01:43:04 - Дискуссия "Как писать меньше на C++?" (Константин Владимиров, Илья Казаков, Алексей Щербаков, Василий Рамаданов). 02:43:06 - Доклад "Реализация динамического полиморфизма для свободных функций" (Кирилл Колодяжный). 03:00:56 - Вопросы участников. 03:11:00 - Доклад "Шаблонное мета-программирование в современном C++ для задач космической баллистики" (Леонид Меркин). 03:59:32 - Вопросы участников. 04:06:05 - Доклад "C++ внутри PostgreSQL: удобство против традиций" (Илья Шишков). 04:46:55 - Вопросы участников. источник #cpp #programming 👉 @cpp_lib

Trip report: June 2025 ISO C++ standards meeting (Sofia, Bulgaria) Сегодня — поворотный момент в истории C++: всего несколько
Trip report: June 2025 ISO C++ standards meeting (Sofia, Bulgaria) Сегодня — поворотный момент в истории C++: всего несколько минут назад комитет по стандартизации C++ проголосовал за включение первых семи документов по отражению во время компиляции (compile-time reflection) в черновик стандарта C++26 — под продолжительные аплодисменты в зале. Думаю, лучше всего значение этой функции выразила Хана «Мисс Констэкспр» Дусикова несколько дней назад, в своей привычной спокойной и невозмутимой манере... когда ей сказали, что документ по reflection попадёт на голосование в субботу, она слегка пожала плечами и тихо сказала: «Совершенно новый язык». https://herbsutter.com/2025/06/21/trip-report-june-2025-iso-c-standards-meeting-sofia-bulgaria/ статья от 2025-06-21 #cpp #programming 👉 @cpp_lib

FastCGo: как мы ускорили вызов C-кода в Go в 16,5 раза Всем привет! Меня зовут Владимир Пустовалов, я C++ разработчик в коман
FastCGo: как мы ускорили вызов C-кода в Go в 16,5 раза Всем привет! Меня зовут Владимир Пустовалов, я C++ разработчик в команде Deckhouse компании «Флант». Мои коллеги — DevOps-инженеры — на данный момент обслуживают более 600 кластеров, и, естественно, в каждом из них развёрнута система мониторинга. Изначально мы использовали Prometheus — опенсорсную систему мониторинга, написанную на Go. По нашей статистике, она занимала около 20 % ресурсов каждого кластера. Мы не могли с этим мириться и поэтому разработали проект под названием Prom++, в котором многократно сократили потребление оперативной памяти и снизили нагрузку на центральный процессор. Кратко о том, что мы сделали: переписали на С++ ядро хранения и обработки горячих данных, при этом вся оркестрация и периферия остались в Prometheus на Go, что позволило сохранить полную совместимость с Prometheus. Для частых вызовов кода C++ мы использовали механизм CGo, однако первые тесты показали, что производительность CPU практически не улучшилась из-за медлительности CGo. В итоге мы переписали CGo, создав собственный механизм вызова. Что будет в этой статье: Разберём, что такое CGo и почему он медленный. Создадим простой собственный механизм CGo-вызова. Доведём этот механизм до полноценного решения. https://habr.com/ru/companies/flant/articles/923912/ #cpp #programming 👉 @cpp_lib

#cpp #programming 👉 @cpp_lib
#cpp #programming 👉 @cpp_lib

Сегментация памяти в программе на C/C++ #cpp #programming 👉 @cpp_lib