Библиотека C/C++ разработчика
Відкрити в Telegram
Полезные материалы по всему, что может быть полезно плюсовику/сишнику. По всем вопросам @evgenycarter
Показати більше7 189
Підписники
Немає даних24 години
-27 днів
-2330 днів
Завантажуємо дані
Схожі канали
Хмара тегів
Вхідні та вихідні згадування
---
---
---
---
---
---
Залучення підписників
жовтень '26жовт '26
жовтень '26
+62
в 0 каналах
вересень '26
+61
в 0 каналах
Get PRO
серпень '26
+53
в 0 каналах
Get PRO
липень '26
+39
в 0 каналах
Get PRO
червень '26
+72
в 0 каналах
Get PRO
травень '26
+79
в 2 каналах
Get PRO
квітень '26
+85
в 0 каналах
Get PRO
березень '26
+80
в 0 каналах
Get PRO
лютий '26
+95
в 0 каналах
Get PRO
січень '26
+90
в 0 каналах
Get PRO
грудень '25
+80
в 1 каналах
Get PRO
листопад '25
+138
в 40 каналах
Get PRO
жовтень '25
+134
в 2 каналах
Get PRO
вересень '25
+158
в 36 каналах
Get PRO
серпень '25
+316
в 2 каналах
Get PRO
липень '25
+255
в 27 каналах
Get PRO
червень '25
+270
в 19 каналах
Get PRO
травень '25
+141
в 45 каналах
Get PRO
квітень '25
+178
в 37 каналах
Get PRO
березень '25
+140
в 38 каналах
Get PRO
лютий '25
+215
в 31 каналах
Get PRO
січень '25
+207
в 33 каналах
Get PRO
грудень '24
+240
в 34 каналах
Get PRO
листопад '24
+218
в 32 каналах
Get PRO
жовтень '24
+255
в 29 каналах
Get PRO
вересень '24
+309
в 28 каналах
Get PRO
серпень '24
+197
в 18 каналах
Get PRO
липень '24
+162
в 1 каналах
Get PRO
червень '24
+215
в 24 каналах
Get PRO
травень '24
+207
в 19 каналах
Get PRO
квітень '24
+258
в 0 каналах
Get PRO
березень '24
+280
в 21 каналах
Get PRO
лютий '24
+324
в 19 каналах
Get PRO
січень '24
+312
в 23 каналах
Get PRO
грудень '23
+220
в 25 каналах
Get PRO
листопад '23
+202
в 18 каналах
Get PRO
жовтень '23
+212
в 19 каналах
Get PRO
вересень '23
+195
в 0 каналах
Get PRO
серпень '23
+159
в 0 каналах
Get PRO
липень '23
+185
в 0 каналах
Get PRO
червень '23
+224
в 0 каналах
Get PRO
травень '23
+173
в 0 каналах
Get PRO
квітень '23
+146
в 0 каналах
Get PRO
березень '23
+116
в 0 каналах
Get PRO
лютий '23
+184
в 0 каналах
Get PRO
січень '23
+361
в 0 каналах
Get PRO
грудень '22
+193
в 0 каналах
Get PRO
листопад '22
+135
в 0 каналах
Get PRO
жовтень '22
+244
в 0 каналах
Get PRO
вересень '22
+269
в 0 каналах
Get PRO
серпень '22
+307
в 0 каналах
Get PRO
липень '22
+548
в 0 каналах
Get PRO
червень '22
+1 976
в 0 каналах
| Дата | Залучення підписників | Згадування | Канали | |
| 26 жовтня | +2 | |||
| 25 жовтня | +2 | |||
| 24 жовтня | +3 | |||
| 23 жовтня | +3 | |||
| 22 жовтня | +2 | |||
| 21 жовтня | +1 | |||
| 20 жовтня | +2 | |||
| 19 жовтня | +5 | |||
| 18 жовтня | +4 | |||
| 17 жовтня | +2 | |||
| 16 жовтня | +1 | |||
| 15 жовтня | +2 | |||
| 14 жовтня | +1 | |||
| 13 жовтня | +8 | |||
| 12 жовтня | +3 | |||
| 11 жовтня | +2 | |||
| 10 жовтня | 0 | |||
| 09 жовтня | +1 | |||
| 08 жовтня | +3 | |||
| 07 жовтня | +1 | |||
| 06 жовтня | 0 | |||
| 05 жовтня | +1 | |||
| 04 жовтня | +4 | |||
| 03 жовтня | 0 | |||
| 02 жовтня | +5 | |||
| 01 жовтня | +4 |
Дописи каналу
Продвинутое использование препроцессора в C и C++
Зачастую, в проектах ограничивается использование препроцессора по следующим причинам:
— Он не похож на весь остальной язык;
— Макросы могут возвращать неполные синтаксические конструкции, или вовсе различные, в зависимости от параметров.
Ввиду перечисленных особенностей, читать код с активным использованием препроцессора зачастую становится на порядок сложнее кода без него.
Со всеми его недостатками, инструмент есть в языке и достоин изучения.
https://habr.com/ru/companies/timeweb/articles/928598/
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib
| 2 | Универсальная С++ фабрика объектов: для Qt и не только
Меня зовут Михаил Полукаров, я занимаюсь разработкой Desktop-версии корпоративного супераппа для совместной работы VK Teams.
Если вы тоже работали с большими проектами, где активно применяются объектно-ориентированные паттерны проектирования, то наверняка сталкивались с паттернами проектирования Factory Method или AbstractFactory. В процессе разработки я неоднократно ловил себя на мысли, что часто пишу однотипный код таких фабрик, и задумался о том, как можно было бы избежать таких самоповторений.
В этой статье я покажу, как сделать универсальную фабрику объектов, покрывающую большую часть потребностей, следующую принципам DRY (Don’t Repeat Yourself), а также как можно использовать некоторые «фишки» новых стандартов С++.
https://habr.com/ru/companies/vktech/articles/932358/
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib | 775 |
| 3 | 📲 Мы в MAX
#cpp #programming
👉 @cpp_lib | 1 085 |
| 4 | Компиляторный бенчмаркинг и 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. Далее Настя продолжает отвечать сама.
источник
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib | 1 256 |
| 5 | C++ изнутри: внутренние механизмы классов
Крис Райан — CppCon 2024
В своём докладе я рассмотрю внутренние механизмы C++ по следующим темам:
- "Луковица C++": как она соотносится с конструированием, уничтожением объектов и полиморфизмом;
- Порядок конструирования и уничтожения объектов, а также обработка до и после выполнения main();
- Указатели на функции-члены (это не те C-указатели на функции, что вы знали раньше);
- Указатели на данные-члены (не просто «сырые» указатели) и их "data-morphic" функциональность;
- Понимание стека вызовов, кадров стека и механизмов базового указателя (base pointer).
источник
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib | 1 261 |
| 6 | 🚀 Подборка полезных IT каналов в Max
Системное администрирование, DevOps 📌
https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
https://max.ru/tipsysdmin Типичный Сисадмин
https://max.ru/channel_win_sysadmin Системный Администратор Windows
https://max.ru/channel_linux_admin Linux: Системный администратор
https://max.ru/channel_linuxmod Linux
https://max.ru/channel_i_linux Системный администратор
https://max.ru/channel_devopslib DevOps, SRE, Sysadmin
https://max.ru/channel_devops_star DevOps Star (Звезда Девопса)
Excel лайфхак 📌
https://t.me/Excel_lifehack Excel лайфхак
Английский с нуля 🇬🇧
https://max.ru/UchuEnglish
1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://max.ru/channel_DevLab1C 1С:Предприятие 8
Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
https://max.ru/channel_cpp_geek C++ geek
Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика
Программирование React📌
https://max.ru/react_lib React
Программирование Rust📌
https://max.ru/channel_rust_lib
Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика
Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
https://max.ru/channel_java_geek Java Geek
GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных
Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков
Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов
Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼💻👩💻
Шутки программистов 📌
https://max.ru/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free
Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров
Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике
Вакансии в IT📌
https://max.ru/progjob
https://max.ru/channel_rabotait
Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных
Городские📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП
https://max.ru/channel_krasnodar_novosty Краснодар Новости
https://max.ru/channel_novosibirsk_novosti Новосибирск
https://max.ru/channel_samara_novosti Новости Самары
https://max.ru/channel_ekaterinburg_novosti Новости Екатеринбурга
https://max.ru/channel_kazan_novosti Новости Казани
https://max.ru/channel_omsk_novosti Новости Омска
https://max.ru/channel_moskva_24 Москва 24 | 943 |
| 7 | C++ Std:: string Interface Overview
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib | 1 044 |
| 8 | Ошибки, которые не случились: C++ и compile‑time проверка SQL-запросов
В этой статье мы посмотрим, как можно реализовать полную compile‑time валидацию SQL‑запросов на основе схемы базы данных, встраиваемой прямо в код. Без магии, без рантайма, без сторонних тулов. Только стандартный C++ и ваша структура БД. Валидация таблиц, столбцов, типов аргументов и их количества — всё на compile‑time.
Представьте, если бы компилятор сам указывал «такой таблицы нет», «несуществующий столбец», «несовместимые типы» — до запуска программы. Такой подход полностью устраняет «сюрпризы» во время исполнения и исключает класс ошибок, связанных с генерацией SQL во время работы программы. Ваша программа даже не соберётся.
https://habr.com/ru/articles/929052/
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib | 1 300 |
| 9 | Эффективное использование С++
Лекция 1. Библиотеки, утилиты, средства разработки, сборка (Эффективное использование С++)
Лекция 2. Работа с памятью. Утечки ресурсов. RAII, умные указатели (Эффективное использование С++)
Лекция 3. Move semantics, rvalue reference, perfect forwarding.
Лекция 4. Callbacks: lambda, bind & function.
Лекция 5. Multithreading in C++ (потоки, блокировки, задачи, атомарные операции, очереди сообщений)
Лекция 6. Обзор возможностей современных стандартов C++
источник
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib | 1 805 |
| 10 | Курс по ООП в С++
введение
инкапсуляция
наследование
полиморфизм
шаблоны и метапрограммирование
источник
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib | 1 870 |
| 11 | Запись 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 - Вопросы участников.
источник
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib | 1 664 |
| 12 | 📲 Мы в MAX
#cpp #programming
👉 @cpp_lib | 1 180 |
| 13 | Сегментация памяти в программе на C/C++
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib | 1 327 |
| 14 | RAII 2.0: RAII как архитектурный инструмент в C++
Идиома RAII — давно зарекомендовал себя как удобный способ автоматического управления ресурсами в C++. Обычно мы применяем его для управления памятью, файловыми дескрипторами или мьютексами. Однако что, если расширить понятие RAII до управления не только физическими ресурсами, но и логическими контрактами и состояниями системы?
В этой статье я хочу поговорить о том, как RAII можно использовать для контроля жизненного цикла асинхронных операций, транзакций или подписок, гарантируя их корректное завершение или откат до прежнего состояния.
https://habr.com/ru/articles/901092/
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib | 1 464 |
| 15 | Удобный способ работы с перечислениями в C++ — приведение enum к строке и обратно.
Во многих проектах используется enum, чтобы задать ограниченный набор значений. Но как вывести значение enum в лог? Или, наоборот, прочитать из строки и получить нужное значение enum?
C++ сам по себе не умеет конвертировать enum в строку и обратно. Вот простая реализация этого функционала через std::unordered_map:
enum class LogLevel {
Debug,
Info,
Warning,
Error
};
const std::unordered_map<LogLevel, std::string> LogLevelToString = {
{LogLevel::Debug, "Debug"},
{LogLevel::Info, "Info"},
{LogLevel::Warning, "Warning"},
{LogLevel::Error, "Error"},
};
const std::unordered_map<std::string, LogLevel> StringToLogLevel = {
{"Debug", LogLevel::Debug},
{"Info", LogLevel::Info},
{"Warning", LogLevel::Warning},
{"Error", LogLevel::Error},
};
std::string to_string(LogLevel level) {
return LogLevelToString.at(level);
}
LogLevel to_log_level(const std::string& str) {
return StringToLogLevel.at(str);
}
Такой подход хорошо работает, если enum не слишком большой. Если значений много — можно автоматизировать генерацию через макросы или использовать библиотеки вроде magic_enum.
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib | 1 417 |
| 16 | Лаконичный макрос defer для C++17
Ручное управление ресурсами в низкоуровневом си-подобном коде на C++ — довольно хлопотное занятие. Создание достойных RAII-врапперов для каждого используемого сишного API не всегда практично, а использование подходов с goto cleanup или множеством вложенных if (success) вредит читаемости кода.
Макрос defer как никогда кстати! Отложенная лямбда будет выполнена при выходе из области видимости, независимо от того, будет ли выполнен return, брошено исключение, или даже выполнен goto наружу. Данный макрос по-настоящему zero-cost и не зависит от рантайма C или стандартной библиотеки, поэтому его можно использовать даже в разработке под ядро ОС.
https://habr.com/ru/articles/916732/
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib | 1 217 |
| 17 | Низкоуровневый скриптинг на C++ для игровых движков
Я постарался охватить только основы, но текст всё равно получился очень длинным.
libriscv — это зрелый эмулятор RISC-V, который в настоящее время используется в игровых движках. Насколько мне известно, это единственный эмулятор, в котором основной акцент делается на обработке задержек, а также предоставляются специализированные решения и инструменты для выполнения быстрых вызовов при обращении с функциями — как входящих, так и исходящих. Причём, всё это заключено в безопасной песочнице. Задержки, наблюдаемые в libriscv, гораздо ниже, чем в эталонных эмуляторах.
Меня многие спрашивали, как им пользоваться, но здесь интереснее то, как вообще может прийти в голову мысль писать скрипты на C++ — не слишком ли сложно это будет? Оказывается, нет, не очень. Вот уже несколько лет я пишу на C++ скрипты для одной большой и одной не очень большой игры, и меня почти не посещало ощущение, что виной каким-то возникающим при этом проблемам являются язык C++ или связанные с ним скриптовые API. Я много лет программирую на Lua, а до этого пользовался обычным C. Но сейчас современный идиоматический C++ — то, что мне нужно. Причём, я могу писать на этом языке как в самом игровом движке, так и за его пределами, при этом опираясь (буквально) на одни и те же абстракции и оперируя одинаковыми структурами данных. Наконец, C++ просто очень мощный. Правда, я признаю, что о вкусах не спорят, и при работе с C++ также не обойтись без компромиссов.
https://habr.com/ru/articles/919620/
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib | 1 446 |
| 18 | Пишем игру для игровой ретро-консоли Anbernic на C++
Дисклеймер
Сразу скажу, что почти всё, что описано в этой статье, я делал первый раз в жизни, поэтому я не мог не совершить ошибок. Некоторые мои решения и заявления могут быть некорректными. Воспринимать эту статью как туториал можно только на свой страх и риск. Для нормального восприятия этой статьи вы должны обладать базовыми навыками программирования на C++ и хотя бы общим представлением о том, что из себя представляет операционная система Linux.
Как всё начиналось
Не так давно ко мне в руки попала игровая консоль Anbernic RG35XX SP. Это портативная игровая консоль на базе четырёхъядерного процессора Allwinner H700 с ядрами Cortex-A53, которая имеет на борту операционную систему OFW (дистрибутив Linux, основанный на Ubuntu). Консоль предназначена для запуска ретро игр на эмуляторе Retroarch. Этот эмулятор поддерживает эмуляцию множества популярных игровых консолей 90х и 2000х и позволяет запускать ТЫСЯЧИ популярных игр, которые можно устанавливать на SD карточку.
https://habr.com/ru/articles/897338/
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib | 1 390 |
| 19 | Руководство по сборке Qt под Windows из исходников с MinGW
Официальный способ установки готовых бинарников Qt - через онлайн инсталлятор. Однако он требует обязательной регистрации. Да еще и недоступен на территории РФ. Есть и другие способы получить бинарники, или собрать с компилятором от Microsoft, однако не всегда эти способы приемлемы. Сборка из исходников под Windows может оказаться несколько нетривиальна для новичков, потому сделал небольшую инструкцию по сборке Qt 5 и Qt 6. А так же рассмотрена базовая настройка QT Creator.
https://habr.com/ru/articles/917252/
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib | 1 387 |
| 20 | 📲 Мы в MAX
#cpp #programming
👉 @cpp_lib | 1 681 |
