cpp_lib | Unsorted

Telegram-канал cpp_lib - Библиотека C/C++ разработчика

2630

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

Subscribe to a channel

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

CLI'нический парсинг

Каждый программист однажды получает по голове необходимостью парсить аргументы командной строки. Кого-то этот удар сломит и заставит написать несколько сотен строк кода, по которому потом будут восстанавливать интерфейс программы следующие поколения, другие сделают наборы рантайм мап и начнут оперировать строками, по которым будет уже непонятно, то ли это так и должно быть, то ли опечатка... Последние в порыве отчаяния возьмут целый boost для этой задачи, а тот сведётся всё к тем же рантайм мапам и строкам

https://habr.com/ru/articles/781496/

#cpp #programming

👉 @cpp_lib

Читать полностью…

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

Проектно-ориентированное обучение

Список уроков по программированию, в которых начинающие разработчики программного обеспечения учатся создавать приложения с нуля. Эти уроки разделены по различным основным языкам программирования. Уроки могут включать в себя несколько технологий и языков.

https://github.com/practical-tutorials/project-based-learning?tab=readme-ov-file#cc

#cpp #programming

👉 @cpp_lib

Читать полностью…

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

👩‍💻 Что должен знать востребованный разработчик на С++?

Расскажет Александр Ключев — ведущий программист в «Новые облачные технологии». Приходите на бесплатный практический урок «C++20 динамическое выделение памяти во время компиляции» от OTUS.

На вебинаре вы узнаете:

- как работает динамическое выделение памяти на этапе компиляции в С++20;
- зачем это нужно и где можно использовать.

🤝 Встречаемся 15 февраля в 20:00 мск в рамках курса «C++ Developer. Professional». Доступна рассрочка на обучение!

➡️ Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://vk.cc/cur7TO

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

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

Верле: разрешаем коллизии

Часть 1
Всех приветствую! Сегодня мы попробуем написать некое подобие простейшего физического движка.

https://habr.com/ru/articles/775228/


Часть 2
В прошлой части мы искали коллизии самым примитивным образом - перебирали все пары объектов и сравнивали сумму их радиусов с расстоянием между их центрами. При таком подходе максимальное число объектов, которое наш движок мог выдержать, составляло несколько сотен.

Возникает закономерный вопрос: зачем проверять на пересечение окружности, которые находятся далеко друг от друга?

Действительно, теперь мы будем поступать чуть хитрее.

https://habr.com/ru/articles/778482/

#cpp #programming

👉 @cpp_lib

Читать полностью…

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

💪 Пройди тест по C++ и проверь свои знания.

Ответишь
— пройдешь на продвинутый курс "C++ Developer. Professional" от OTUS по специальной цене + получишь запись мастер-класса от преподавателя курса.

⛔️ ПРОЙТИ ТЕСТ: https://vk.cc/cugzY3

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

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

Introduction to C & GUI Programming
Author: Simon Long (2019)

Популярный язык программирования C используется в огромном количестве приложений - от крошечных микроконтроллеров, используемых в тостерах и часах, до полноценных операционных систем.

Первая половина этой книги представляет собой введение в язык C и охватывает основы написания простых программ для командной строки.

Во второй половине книги показано, как использовать инструментарий пользовательского интерфейса GTK вместе с C для создания многофункциональных GUI-приложений, которые можно запускать на рабочем столе. Не требуется никакого опыта работы с C или GTK, даже если вы абсолютный новичок, эта книга научит вас всему, что нужно знать.

@cpp_knigi

Читать полностью…

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

Память как у пингвина: Работа памяти в Linux

Начнем издалека. В спецификации любого компьютера и в частности сервера непременно числится надпись "N гигабайт оперативной памяти" - именно столько в его распоряжении находится физической памяти.

Задача распределения доступных ресурсов между исполняемым программным обеспечением, в том числе и физической памяти, лежит на плечах операционной системы, в нашем случае Linux. Для обеспечения иллюзии полной независимости, она предоставляет каждой из программ свое независимое виртуальное адресное пространство и низкоуровневый интерфейс работы с ним. Это избавляет их от необходимости знать друг о друге, размере доступной физической памяти и текущей её занятости. Адреса в виртуальном пространстве процессов называют логическими.

Для отслеживания соответствия между физической и виртуальной памятью ядро Linux использует иерархический набор структур данных в своей служебной области физической памяти (только оно работает с ней напрямую), а также специализированные аппаратные контуры, которые в совокупности называют MMU.

Следить за каждым байтом памяти в отдельности было бы накладно, по-этому ядро оперирует достаточно большими блоками памяти - страницами, типовой размер которых составляет 4 килобайта.

https://habr.com/ru/articles/777250/

#cpp #programming

👉 @cpp_lib

Читать полностью…

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

👩‍💻 Как разработчику на С++ оптимизировать работу?

Расскажет Александр Ключев — руководитель команды разработки в «Новые облачные технологии». Встречаемся на бесплатном практическом уроке «Вычисления на этапе компиляции в языке C++» от OTUS.

На вебинаре вы:
⬇️ узнаете, как выполнять часть работы программ на С++ за счет вычислений на этапе компиляции;
⬇️ научитесь делать вычисления с помощью шаблонов, constexpr функций и замыканий;
⬇️ познакомитесь с другими полезными инструментами, которые можно использовать на этапе компиляции программ.

🤝 Встречаемся 1 февраля в 20:00 мск в рамках курса «C++ Developer. Professional». Доступна рассрочка на обучение!

➡️ Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://vk.cc/cu7kbe

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

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

Unreal Engine 5 Game Development with C++ Scripting: Become a professional game developer and create fully functional, high-quality games
Автор: Dr. E. Wyn Roberts (2023)

Вы начнете с создания проекта Unreal Engine C++ на основе шаблона шутера, а затем перейдете к созданию проекта C++ и кода C++ в редакторе Visual Studio. Вы познакомитесь с фундаментальным синтаксисом языка C++ и основными концепциями объектно-ориентированного программирования. Для целостного понимания разработки игр вы также раскроете различные аспекты игры, включая создание персонажа, ввод данных игроком и управление персонажем, геймплей, обнаружение столкновений, пользовательский интерфейс, сетевое взаимодействие, а также упаковку готовой многопользовательской игры.

@cpp_knigi

Читать полностью…

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

Как начинающему C++ разработчику быстро вырасти до Middle+ уровня?

Можно собирать знания и опыт по крупицам, но быстрее и удобнее всего пройти онлайн-курс «C++ Developer. Professional» от OTUS, где уже собраны все актуальные навыки.

5️⃣ Всего 5 месяцев обучения — и вы совершите карьерный рывок!

На этом курсе вы:
✔️ Научитесь прикладному применению стандартов C++11 / C++14 / C++17.
✔️ Освоите асинхронное и многопоточное программирование.
✔️ Получите глубокое представление о шаблонной магии и паттернах проектирования.

Наглядным результатом вашей работы станет выпускной проект, который позволит вам претендовать на позицию middle C++ разработчика.

🎫 Курс можно приобрести в рассрочку

➡️ Проходите вступительный тест и занимайте место по спец.цене: https://vk.cc/ctXW85

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

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

Рассказы о SObjectizer. Работа с командами

Мы только что познакомились с Лукасом, коллегой, которому необходимо запечатлеть определенные моменты с помощью своей камеры. Что, если бы мы могли по взмаху виртуальной палочки приказывать устройству запускать и останавливать съемку?

Лукас приводит пример использования:

Я запускаю программу, и она ничего не делает;
В какой-то момент я решаю запустить веб-камеру, нажав на кнопку или крикнув "Alexa, включи веб-камеру". Я ожидаю, что в этот момент начнется поток кадров;
Я делаю забавное лицо в течение некоторого времени, затем решаю каким-то образом остановиться, и программа должна вернуться в состояние ожидания;
может быть, я хочу сделать это снова, и снова, и снова...

https://dev.to/ilpropheta/sobjectizer-tales-4-handling-commands-3jbb

#cpp #programming

👉 @cpp_lib

Читать полностью…

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

Фильтруем логи санитайзеров и valgrind на примере приложения с Qt

Периодически встречающаяся проблемами кода на С и C++ являются утечки памяти и неопределенное поведение. Даже если вы используете умные указатели, то от ошибок в библиотеках сторонних разработчиков вы не застрахованы. Для поиска ошибок в коде существуют специальные инструменты:

санитайзеры;
valgrind.

https://habr.com/ru/companies/stc_spb/articles/776528/

#cpp #programming

👉 @cpp_lib

Читать полностью…

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

Автогенерируемый оператор равенства

Вы можете определить оператор трехстороннего сравнения или запросить его у компилятора с помощью =default. Но знаете ли вы, что в C++20 можно также определить или запросить оператор равенства?

https://modernescpp.com/index.php/the-autogenerated-equality-operator/

#cpp #programming

👉 @cpp_lib

Читать полностью…

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

Больше функциональности в C++23
Björn Fahller

Функции высшего порядка - функции, принимающие функции на вход или возвращающие функции, - полезны для того, чтобы сделать ваш код более композиционным и выразительным. Развитие стандартной библиотеки с помощью диапазонов, std::expected и последних расширений std::optional делает использование функций высшего порядка гораздо более желательным. В то же время развитие основного языка сделало их гораздо проще в написании.

Я покажу вам приемы, позволяющие повысить выразительность вашего кода
не жертвуя производительностью, и продемонстрирую, как некоторые из недавних
дополнений к языку и библиотеке улучшают работу разработчика.

источник

#cpp #programming

👉 @cpp_lib

Читать полностью…

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

Подборка Telegram каналов для программистов

Системное администрирование 📌
/channel/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
/channel/sysadminof Книги для админов, полезные материалы
/channel/i_odmin Все для системного администратора
/channel/i_odmin_book Библиотека Системного Администратора
/channel/i_odmin_chat Чат системных администраторов
/channel/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
/channel/sysadminoff Новости Линукс Linux


/channel/tikon_1 Новости высоких технологий, науки и техники💡
/channel/mir_teh Мир технологий (Technology World)

/channel/rust_lib Полезный контент по программированию на Rust
/channel/golang_lib Библиотека Go (Golang) разработчика

/channel/itmozg Программисты, дизайнеры, новости из мира IT.
/channel/phis_mat Обучающие видео, книги по Физике и Математике

/channel/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
/channel/nodejs_lib Подборки по Node js и все что с ним связано
/channel/ruby_lib Библиотека Ruby программиста

1C разработка 📌
/channel/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌
/channel/cpp_lib Библиотека C/C++ разработчика
/channel/cpp_knigi Книги для программистов C/C++
/channel/cpp_geek Учим C/C++ на примерах

Программирование Python 📌
/channel/pythonofff Python академия. Учи Python быстро и легко🐍
/channel/BookPython Библиотека Python разработчика
/channel/python_real Python подборки на русском и английском
/channel/python_360 Книги по Python Rus

Java разработка 📌
/channel/BookJava Библиотека Java разработчика
/channel/java_360 Книги по Java Rus
/channel/java_geek Учим Java на примерах

GitHub Сообщество 📌
/channel/Githublib Интересное из GitHub

Базы данных (Data Base) 📌
/channel/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
/channel/developer_mobila Мобильная разработка
/channel/kotlin_lib Подборки полезного материала по Kotlin

Фронтенд разработка 📌
/channel/frontend_1 Подборки для frontend разработчиков
/channel/frontend_sovet Frontend советы, примеры и практика!
/channel/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
/channel/game_devv Все о разработке игр

Вакансии 📌
/channel/sysadmin_rabota Системный Администратор
/channel/progjob Вакансии в IT

Чат программистов📌
/channel/developers_ru

Библиотеки 📌
/channel/book_for_dev Книги для программистов Rus
/channel/programmist_of Книги по программированию
/channel/proglb Библиотека программиста
/channel/bfbook Книги для программистов
/channel/books_reserv Книги для программистов

БигДата, машинное обучение 📌
/channel/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
/channel/bookflow Лекции, видеоуроки, доклады с IT конференций
/channel/coddy_academy Полезные советы по программированию

QA, тестирование 📌
/channel/testlab_qa Библиотека тестировщика

Шутки программистов 📌
/channel/itumor Шутки программистов

Защита, взлом, безопасность 📌
/channel/thehaking Канал о кибербезопасности
/channel/xakep_1 Статьи из "Хакера"

Книги, статьи для дизайнеров 📌
/channel/ux_web Статьи, книги для дизайнеров

Английский 📌
/channel/UchuEnglish Английский с нуля

Математика 📌
/channel/Pomatematike Канал по математике

Excel лайфхак📌
/channel/Excel_lifehack

Читать полностью…

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

Подготовка инструментов под фаззинг UEFI на базе edk2 в Windows

Так повелось в мире, что время от времени необходимо проводить исследования безопасности драйверов и прошивок. Одним из способов исследования является — фаззинг (Fuzzing). Не будем останавливаться на описании самого процесса фаззинга, для этого есть эта статья, отметим только, что в основном его используют для исследования прикладных приложений. И тут возникает вопрос: как профаззить прошивку, в частности прошивку UEFI? Здесь будет рассказано об одном из способов с использованием программного эмулятора EDKII, чтобы проводить фаззинг без развертывания аппаратных стендов. И что важно, все это сделаем в Windows.

Сразу, что такое EDKII? — это среда разработки и эмулятор ПО согласно спецификации UEFI. Про разработку в EDKII есть ряд статей (вот и вот), а наша задача связать эмулятор EDKII и фаззер.

А реализовывать инструментацию будем под фаззер WinAFL.

https://habr.com/ru/articles/773548/

#cpp #programming

👉 @cpp_lib

Читать полностью…

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

Шпаргалка по C++

Шпаргалка фокусируется на языке, а не стандартной библиотеке, и учитывает особенности C++11/C++14

#cpp #programming

👉 @cpp_lib

Читать полностью…

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

Следует ли проверять указатель на NULL перед вызовом функции free?

Короткий ответ: нет. Тем не менее, раз про это вновь и вновь спрашивают на Reddit, Stack Overflow и других сайтах, пришло время подробно разобрать эту тему. Оказывается, есть много интересного, о чём можно порассуждать.

https://habr.com/ru/companies/pvs-studio/articles/791798/

#cpp #programming

👉 @cpp_lib

Читать полностью…

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

Как добавить non-copyable и non-movable объект в std::map или std::unordered_map

struct weird
{
int value;
std::mutex mtx;
};

std::map<int, weird> table;

table.insert({ 1, {} }); // nope
table.insert_or_assign(1, weird{}); // nope
table.emplace({ 1, {} }); // nope
table.emplace(1, weird{}); // nope
table.try_emplace(1, weird{}); // nope


https://devblogs.microsoft.com/oldnewthing/20231023-00/?p=108916

#cpp #programming

👉 @cpp_lib

Читать полностью…

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

Этот пост о том небольшом дополнении, которым мы можем снабдить builder-классы

Я согласен с Клаусом Иглбергером, который призвал говорить о дизайне программного обеспечения на Meeting C++ 2022. Этот пост - всего лишь маленький вклад в это дело.

https://marcoarena.wordpress.com/2023/01/31/the-toggle-builder/

#cpp #programming

👉 @cpp_lib

Читать полностью…

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

Запускаем управление файлами метаданных

Пакет C или C++ обычно состоит из нескольких артефактов C и C++, заголовков, скомпилированных библиотек и исполняемых файлов. Но есть и другие файлы, которые могут быть не нужны для обычного использования такого пакета, но которые могут быть очень важны по техническим или деловым причинам, например, для регулирования, соответствия, безопасности, воспроизводимости и отслеживаемости. Вот некоторые примеры:

Полные журналы сборки
Исполняемые файлы тестов
Результаты выполнения набора тестов
Артефакты отладки, такие как тяжелые файлы .pdb.
Результаты анализа покрытий, санитайзеров или других инструментов анализа исходного кода или бинарных файлов
Контекст и метаданные о сборке, точная машина, окружение, автор, данные CI
Другие файлы, связанные с соблюдением требований и безопасностью

https://blog.conan.io/2023/10/24/Conan-launches-metadata-files.html

#cpp #programming

👉 @cpp_lib

Читать полностью…

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

Разработка кросплатформенного приложения на Qt с использованием нейросетей, обученных на tensorflow

Раз уж Вы заинтересовались данной статьёй, то ожидается, что Вы умеете программировать на с++ с использованием библиотеки Qt и разрабатывать нейросети на Python c использованием библиотеки tensorflow.
Соответственно остаётся только понять как использовать обученные Вами нейросетевые модели в Qt проектах.

https://habr.com/ru/articles/719888/

#cpp #programming

👉 @cpp_lib

Читать полностью…

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

Шпаргалки и инфографика по C++

https://hackingcpp.com/cpp/cheat_sheets.html

#cpp #programming

👉 @cpp_lib

Читать полностью…

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

При обработке строк потоки в C++ могут быть медленными

Библиотека C++ уже давно организована вокруг классов потоков, по крайней мере, когда речь идет о чтении и разборе строк. Но потоки могут быть удивительно медленными. Например, если вам нужно разобрать числа, то эта процедура C++ близка к тому, чтобы стать худшим выбором с точки зрения производительности:

std::stringstream in(mystring);
while(in >> x) {
sum += x;
}
return sum;


https://lemire.me/blog/2023/10/19/for-processing-strings-streams-in-c-can-be-slow/

#cpp #programming

👉 @cpp_lib

Читать полностью…

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

Объединение интервалов в C++ нового поколения

Несколько недель назад я задал эту задачу на Coding Gym: задайте массив интервалов, где intervals[i] = [starti, endi], объедините все пересекающиеся интервалы и верните массив непересекающихся интервалов, которые покрывают все интервалы на входе.

Вот пример:
Input: intervals = [[1,3],[2,6],[8,10],[15,18]]
Output: [[1,6],[8,10],[15,18]]
Explanation: Since intervals [1,3] and [2,6] overlap, merge them into [1,6].


https://marcoarena.wordpress.com/2023/03/08/merging-intervals-in-next-gen-cpp/

#cpp #programming

👉 @cpp_lib

Читать полностью…

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

Развивайте алгоритмическое мышление, чтобы претендовать на Middle и Senior-должности в крупных IT-компаниях

Проверьте свой уровень компетенций и узнайте насколько вы соответствуете требованиям рынка: https://vk.cc/ctV8j1

Сможете ответить на 20 вопросов за 30 минут, получите скидку на курс «Алгоритмы и структуры данных» от OTUS.

Читать полностью…

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

Создание своего терминала на C++ и Qt

Сегодня мы создадим свой собственный терминал на языке программирования C++. Я являюсь фанатом Linux, и пользуюсь минималистичными терминальными программами — от Vim как IDE до чатов. Есть множество терминалов, у каждого из них есть плюсы и минусы. Наш терминал не будет претендовать на место серьезного проекта, но если вы хотите улучшить код, который мы сегодня напишем — то вы молодцы, можете без проблем развить наш терминал.

Это будет небольшой, минималистичный терминал для Linux. Он будет на основе фреймворка Qt 5 и библиотеки qtermwidget5

Не буду долго тянуть, вперед! Исходный код будет в моем репозитории.

https://habr.com/ru/articles/776716/

#cpp #programming

👉 @cpp_lib

Читать полностью…

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

⚠️ Как Data Scientists дойти до уровня Middle+?

Совершенствовать мастерство ML в сообществе единомышленников!

Пройдите тест и проверьте, насколько вы готовы к обучению на продвинутом курсе «Machine Learning. Advanced» от OTUS.

🧑‍💻 В программе продвинутые ML-алгоритмы, RL, графы, временные ряды, рекомендательные системы, а также работа в production: настройка окружения, оптимизация кода, построение end-to-end пайплайнов и внедрение решений

⚠️ Вебинары в формате Live coding, где преподаватель с «чистого листа» показывает решение актуальных задач ML.

🔥  Ответьте на 20 вопросов, получите велкам-скидку и доступ к 2 предстоящим открытым урокам:

✔️ Ранжирование каталога товаров
✔️ Рекомендательные системы на основе матричных разложений

 ➡️ https://otus.pw/29L4/?erid=LjN8KSUtk

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

Читать полностью…

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

Опыт создания UI библиотеки на C++

Началось все почти два года назад в декабрe, наш основной проект (видео мессенджер) использовал WTL для Windows и GTKmm для Linux. Поддержки мака не было. Огромной неприятностью было тащить два идентичных клиента, которые, по идее, должны делать все строго одно и тоже. Разумеется, это никогда не получалось. От мысли что надо бы сделать ещё один нативный клиент для мака начинался нервный тик...

На резонный вопрос - почему сразу делалось не на Qt могу лишь ответить, что это связано с, так скажем, гурманскими предпочтениями и, отчасти, с любовью к монолитным exe. Да и не требовалось на старте ничего кроме винды.

В течение шести лет жизни с двумя кодовыми базами одного и того же, неспешно подбирались легковесные UI библиотеки написанные хотя бы в стиле C++11.

Надо сказать, что мы активно используем boost и всей душой, как можем, его любим...

В 2021 году видимо Гугл работал плохо или звёзды так сошлись, но не нашлось ничего стоящего. Все что попадалось - основанные на рендеринге html проекты и обертка над wxWidgets. Сейчас то мы знаем про lvgl, да... А вообще, тысячи их.

wxWidgets не плох, но хотелось своего рисования, без окошек под кнопки, поля ввода и списки, boost/bsd подобной лицензией, максимально лаконичной, и в идеале работающей от Windows XP / CentOS 6 на стандартном GDI / X11 до Vulkan на современных машинах.

В итоге, все же было принято волевое решение сделать минимальный UI фреймворк для этого проекта, и сразу выпускать его в Open Source под лицензией boost.

https://habr.com/ru/articles/768336/

#cpp #programming

👉 @cpp_lib

Читать полностью…

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

Дорожная карта навыков разработчика на C++

В этой статье мы с помощью карты покажем, какие навыки и знания нужны разработчику на C++. Естественно, разбирать путь развития «плюсистов» будем на собственном примере — тем более что у нас в «Лаборатории Касперского» много очень разных проектов с отличающимися задачами. Однако наша карта по большей части универсальна и будет полезна всем, кто хочет развиваться в разработке на C++.

https://habr.com/ru/specials/726724/

#cpp #programming

👉 @cpp_lib

Читать полностью…
Subscribe to a channel