Библиотека C/C++ разработчика
الذهاب إلى القناة على Telegram
Полезные материалы по всему, что может быть полезно плюсовику/сишнику. По всем вопросам @evgenycarter
إظهار المزيد7 323
المشتركون
+224 ساعات
+87 أيام
+1430 أيام
أرشيف المشاركات
Опечатки, нулевые указатели и коварный таб: 33 фрагмента в библиотеке GTK
GTK – популярный фреймворк с открытым исходным кодом для создания графических интерфейсов, который интересно проверять с помощью анализатора PVS-Studio. Тем более, что предыдущую проверку мы делали около 3 лет назад, а значит, наверняка найдём в нём новые ошибки.
Очень не хотелось частично повторять введение из прошлой статьи "Выявляем опечатки в проекте GTK 4 с помощью PVS-Studio", но подозреваю, что далеко не все читатели знакомы с GTK. Поэтому вкратце: библиотека позволяет кроссплатформенно реализовывать графический пользовательский интерфейс. Полностью бесплатна и имеет открытый исходный код, лицензированный под GNU GPL, что позволяет использовать её в любых проектах (даже коммерческих).
https://habr.com/ru/companies/pvs-studio/articles/770050/
#cpp #programming
👉 @cpp_lib
💡 QT и ОС Аврора: надежная основа для разработки востребованного ПО!
❗️ Вкладывай в перспективу - вкладывай в себя!
Пройди тест из 20 вопросов и проверь, насколько хорошо nы знаешь язык C++ и готов освоить QT и ОС Аврора .
Сможешь сдать — пройдёшь на продвинутый онлайн-курс "Разработка прикладного ПО на Qt и ОС Аврора" от OTUS.
👉 ПРОЙТИ ТЕСТ: https://vk.cc/csvYiL
Курс доступен в рассрочку.
🎁 Черная пятница в OTUS! Успей применить промокод BLACK23 и получить скидку 15% на курс!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576Решаем задачу асинхронного ввода-вывода с библиотекой Asio
Меня зовут Илья Казаков, я C++ разработчик в команде систем хранения данных компании YADRO, одна из моих задач — реализация эффективных IO-bound программ под Linux.
На одном из проектов мы с командой использовали Asio — библиотеку C++ для сетевого и низкоуровневого программирования ввода-вывода. Она предлагает свою асинхронную модель. Технология отлично справилась с нашей задачей, и я хочу поделиться с вами опытом ее использования. Под катом расскажу, какие решения я рассматривал для асинхронного ввода-вывода и почему остановился на Asio.
https://habr.com/ru/companies/yadro/articles/774130/
#cpp #programming
👉 @cpp_lib
Repost from Книги для программистов C/C++
Beautiful C++: 30 Core Guidelines for Writing Clean, Safe, and Fast Code
J. Davidson, Kate Gregory (2022)
Написание качественного кода на C++ не должно быть трудной задачей. Если разработчик будет следовать рекомендациям, приведенным в C++ Core Guidelines, то он будет писать исключительно надежные, эффективные и прекрасно работающие программы на C++. Но руководство настолько переполнено советами, что порой трудно понять, с чего начать. Начните с «Красивого C++»! Опытные программисты Гай Дэвидсон и Кейт Грегори выбрали 30 основных рекомендаций, которые посчитали особенно ценными, и дают подробные практические советы, которые помогут улучшить ваш стиль разработки на C++. Для удобства книга структурирована в точном соответствии с официальным веб-сайтом C++ Core Guidelines.
👉 @cpp_knigi
🎮 Завершите создание своего первого шутера и добавьте его в портфолио
👉 На бесплатном открытом уроке «Создаём простейший шутер от третьего лица на Unreal Engine 5. Часть 2» от OTUS.
На втором эфире мы:
- реализуем механику стрельбы и урона, свяжем их с созданным UI;
- создадим бота-противника и разработаем для него простейший AI, который будет искать нас и нападать при обнаружении;
- разработаем систему подбираемых предметов (патроны, оружие).
⏰ Занятие пройдёт 22 ноября в 20:00 мск и будет приурочено к старту курса «Unreal Engine Game Developer. Basic». После урока вы сможете продолжить обучение на специальных условиях и получить видеокурс по программированию на С++ в подарок.
👉 Для бесплатного участия и получения записи обоих уроков регистрируйтесь прямо сейчас: https://vk.cc/csrxDL
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Writing a simple C++20 async message queue server
Part I https://bytepawn.com/writing-a-simple-cpp-async-message-queue-server.html
Part II https://bytepawn.com/writing-a-simple-cpp-async-message-queue-server-part-ii.html
#cpp #programming
👉 @cpp_lib
Перегрузка операторов в C++. Основы
#include <iostream>
class Counter
{
public:
Counter(int val)
{
value =val;
}
void print()
{
std::cout << "Value: " << value << std::endl;
}
Counter operator + (const Counter& counter) const
{
return Counter{value + counter.value};
}
private:
int value;
};
int main()
{
Counter c1{20};
Counter c2{10};
Counter c3 = c1 + c2;
c3.print(); // Value: 30
}
https://metanit.com/cpp/tutorial/5.14.php
#cpp #programming
👉 @cpp_lib🌎Программист, мир огромен и разнообразен!
👉Узнайте больше о возможностях С на бесплатном вебинаре онлайн-курса «Программист С» — «Unicode в С»: регистрация
На вебинаре мы:
— подробнее познакомимся с интернациональным стандартом символов Unicode и низкоуровневым устройством его кодировок
— развеем несколько популярных мифов в области кодировок и посмотрим на инструменты языка C для работы с юникодом.
✅Занятие будет полезно всем программистам, практикующим написание кода на C и C++.
👉После вебинара вы сможете продолжить обучение на курсе по спеццене, в том числе, в рассрочку
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8Jtijr
Как рисуется карта в Фараоне
В свободное время я восстанавливаю старенькую, но довольно известную игру Pharaoh. Это ситибилдер, выпущенный в прошлом веке и разработанный Impressions Games. Технология рендеринга в этой игре была значительным достижением для своего времени и способствовала созданию впечатляющей атмосферы Древнего Египта, которая погружает игрока в проработанное окружение, удивляет вниманием к мелким деталям и передает богатство и разнообразие древнеегипетских пейзажей. В этой статье я опишу алгоритм отрисовки города, зданий, объектов, анимации и формат карты оригинальной игры.
https://habr.com/ru/articles/767892/
#cpp #programming
👉 @cpp_lib
Fiber в C++: Понимание основ
Fiber, менее известная концепция по сравнению с coroutine, является довольно мощным дополнением к кооперативной многозадачности. Как графический программист, работающий в игровой индустрии, я очень ценю гибкость, которую дает fiber. На самом деле, мне кажется, что эта технология немного недооценена из-за отсутствия достаточного количества публичных материалов, рассказывающих о волокнах.
В этой статье я расскажу о том, что я узнал об основах Fiber. Все, о чем пойдет речь в этой статье, будет относиться именно к языку C++, хотя подобная концепция существует и в других языках. Читатели, не имеющие представления о fibers, узнают, что это такое и как мы можем использовать его преимущества при рендеринге графики.
https://agraphicsguynotes.com/posts/fiber_in_cpp_understanding_the_basics/
#cpp #programming
👉 @cpp_lib
🔥 Qt и ОС Аврора: надежная основа для разработки востребованного ПО
➖ Освой кроссплатформенную разработку
Пройди тест и проверь свои знания.
Ответишь — пройдешь на продвинутый курс "Разработка прикладного ПО на Qt и ОС Аврора" от OTUS по специальной цене! .
👉 ПРОЙТИ ТЕСТ: https://vk.cc/csl5rH
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576Моя борьба против знакового/беззнакового сравнения: самые распространенные нарушения
Как мы уже говорили на прошлой неделе, сравнение чисел с разными знаками может быть опасным в языке C++. Если попытаться сравнить знаковое и беззнаковое целое число, то можно получить результат, который не имеет смысла, если подходить к вопросу с математической точки зрения. По крайней мере, при правильных настройках компилятора вы получите предупреждение.
Мы также увидели, что C++20 предлагает простой и безопасный способ сравнения чисел в любое время, и он всегда вернет вам ожидаемый результат.
https://www.sandordargo.com/blog/2023/10/18/signed-unsigned-comparison-the-most-usual-violations
#cpp #programming
👉 @cpp_lib
C++ on Sea 2023
https://www.youtube.com/playlist?list=PL5XXu3X6L7jtXSfqjaQnVXJOCFRyfHrS6
#cpp #programming
🔥 Топ-5 способов создания ассоциативного массива
1. Односвязный список
2. Отсортированный массив
3. Двоичное дерево поиска
4. Хэш-таблица
5. Префиксное дерево
💪 Разберём каждый из них подробно на бесплатном открытом уроке «Создание ассоциативного массива различными способами» от OTUS.
На эфире мы:
✔️ реализуем структуру данных «ассоциативный массив» для хранения пар (ключ, значение)
✔️ рассмотрим несколько алгоритмов для решения этой задачи
✔️ сравним их эффективность
📢📢 Занятие состоится 15 ноября в 20:00 мск и будет приурочено к старту курса «Алгоритмы и структуры данных» в Otus.
🎫 После вебинара можно приобрести курс в рассрочку.
➡️ Регистрация на вебинар: https://vk.cc/csgdm1
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ruВведение в компиляцию C++ в командной строке
Возможно, наступит день, когда технологии продвинутся настолько, что нам не нужно будет беспокоиться о том, какие флаги установлены при компиляции, какие файлы включены. Но это не сегодняшний день.
При использовании Unreal Engine 4 или другого высокоуровневого фреймворка компиляция кода на языке C++ в значительной степени скрыта от глаз. Это очень удобно, когда все работает, но становится препятствием, когда нужно что-то изменить. Единственный способ не стать рабом своих творений - понять, как они работают.
https://unrealistic.dev/posts/introduction-to-c-compilation-on-the-command-line
#cpp #programming
👉 @cpp_lib
💪🔥 Переходите на новый уровень в C++ и разнообразьте свою работу!
Пройди тест по C++ и проверь как хорошо ты знаешь язык.
Ответишь — пройдешь на продвинутый курс «C++ Developer. Professional» от OTUS по специальной цене + получишь масстер-класс от преподавателя
❗️ ПРОЙТИ ТЕСТИРОВАНИЕ
https://otus.pw/HG6p/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8JxJeM
C++23: четыре новых ассоциативных контейнера
В C++23 появились четыре новых ассоциативных контейнера: std::flat_map, std::flat_multimap, std::flat_set и std::flat_multiset, которые являются полноценной заменой упорядоченных ассоциативных контейнеров std::map, std::multimap, std::set и std::multiset. Они были добавлены в C++23 по двум причинам: расход памяти и производительность.
https://www.modernescpp.com/index.php/c23-four-new-associative-containers/
#cpp #programming
👉 @cpp_lib
Оптимизация с помощью аллокаторов в C++17
Благодаря полиморфным аллокаторам в C++17 можно оптимизировать распределение памяти. Эта оптимизация включает в себя производительность и повторное использование памяти.
https://www.modernescpp.com/index.php/optimization-with-allocators-in-c17/
#cpp #programming
👉 @cpp_lib
Ускорение работы за счет дублирования кода
https://voidstar.tech/code_duplication/
#cpp #programming
👉 @cpp_lib
💡 Как попасть в команду разработки госпроектов?
Изучить российскую ОС на бесплатном открытом уроке «Знакомство с ОС Аврора и возможностями разработки под неё» от OTUS.
На эфире:
✔️ познакомимся с российской мобильной операционной системой Аврора и её основными особенностями;
✔️ посмотрим на среду разработки приложений Аврора IDE, на структуру и конфигурацию приложения;
✔️ рассмотрим приложение, отправляющее уведомление в графическую подсистему Lipstick.
📢📢 Занятие пройдёт 13 ноября в 20:00 мск и будет приурочено к старту курса «Разработка прикладного ПО на Qt и ОС Аврора».
🎫 После урока вы сможете продолжить обучение в рассрочку.
➡️ Регистрируйтесь на мероприятие прямо сейчас: https://vk.cc/csaFIB
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
