cpp_lib | Unsorted

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

2630

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

Subscribe to a channel

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

Внутри STL: Строка

Можно подумать, что строка std::string (и все ее друзья из семейства std::basic_string) - это, по сути, вектор символов. Однако строки устроены иначе из-за специфических оптимизаций, допустимых для строк, но не для векторов.

https://devblogs.microsoft.com/oldnewthing/20230803-00/?p=108532

#cpp #programming

👉 @cpp_lib

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

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

Что Должно Быть в Каждом FirmWare Pепозитории

В этом тексте я предлагаю порассуждать, что же должно быть в нормальном взрослом firmware репозитории (репе/общаке) безотносительно к конкретному проекту. То есть самые универсальные и переносимые программные компоненты (кирпичики/SubSystems), которые могут пригодиться в практически любой сборке.

#cpp #programming

👉 @cpp_lib

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

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

C++ Full Course (FOUR HOUR All-in-One Tutorial for Beginners)

00:00 - Introduction
09:40 - User Input and Output
20:56 - using namespace std (Potential Problems)
30:38 - if Statement and Comparisons
37:41 - Comparing char with tolower
43:43 - User Input with getchar()
48:59 - else Clause and else if
59:14 - Nested if Statements
01:03:12 - Logical Operators
01:10:27 - booleans (The Truth Exposed)
01:22:47 - Switch Statement
01:31:28 - Defining a Function Prototype and Definition
01:37:29 - Function Returns and Arguments
01:45:24 - While Loop with Guessing Games
01:52:58 - Random Number Generation
02:02:44 - Multiple C++ File Compilation
02:10:05 - for Loops vs While Loops
02:16:53 - Decrementing for Loop (Count Down)
02:24:50 - Arrays and Looping
02:35:57 - Vectors
02:40:40 - Passing Arrays and Vectors to Functions
02:56:38 - Function Overloading
03:00:53 - Function Templates and Template Overloads
03:10:27 - Intro to Deques (Double Ended Queue)
03:14:45 - Reading and Writing to Files (ifstream and ofstream)
03:21:06 - Intro to Classes and Objects (Object Oriented Programming)
03:26:44 - Reading and Writing Custom Object Collection from File
03:36:06 - Custom Constructors
03:41:53 - Static Methods
03:46:47 - Stacks and Queues Shopping List Exercise

источник

#cpp #programming

👉 @cpp_lib

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

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

Как два байта переслать: контрибьютим в KPHP

KPHP - компилятор для PHP. Он конвертирует PHP код в код на C++, компилируя который, ускоряет производительность в десятки раз. Это open-source проект, созданный ВКонтакте. Благодаря ему собирается огромный монолит ВКонтакте на 9 миллионов строк PHP кода в обычный бинарник, запуская который вы локально поднимаете полноценный ВКонтакте.

Цель
Я расскажу про добавление новых функций в runtime KPHP. Точнее про тернистую дорогу на пути.

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

#cpp #programming

👉 @cpp_lib

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

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

Развлечения с gRPC и C++

Погружение в асинхронные серверы и клиенты с использованием C++ и gRPC в 2023 году

Почему я пишу эту серию статей? Так получилось, что я хочу использовать gRPC в своем будущем DNS-сервере.

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

https://lastviking.eu/fun_with_gRPC_and_C++/

#cpp #programming

👉 @cpp_lib

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

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

Бьерн Страуструп: Как развивать язык

С самого начала своего существования язык C++ развивался в направлении создания элегантного и эффективного кода, включающего полную безопасность типов и ресурсов, равную поддержку встроенных и определяемых пользователем типов, а также прямое манипулирование аппаратными и системными ресурсами. Я расскажу об основных идеалах языка C++ и о стратегиях его развития, приведших к появлению современного стандарта ISO C++20. Ключевая идея заключалась в том, что мир постоянно меняется, и Си++ должен меняться вместе с ним на основе обратной связи с реальными проблемами. Однако эти изменения должны происходить в условиях жестких ограничений, связанных с необходимостью обеспечения стабильности основных пользователей.

источник

#cpp #programming

👉 @cpp_lib

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

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

🎮 Прими участие в бесплатном курсе по 3D моделированию для игр в Blender

Регистрация по ссылке👇
https://srflnk.ru/mvOunb

За 4 занятия ты поймешь, что создавать свои игровые модели может каждый!

📢 Что будем делать:
- Подробно разберем интерфейс Blender
- Изучим технику блокинга формы
- Научимся работать с полигональным моделированием и созданием Lowpoly моделей под игры
- Научимся настраивать pbr материалы в движке Eevee, а также работать со светом и настройками визуализации, чтобы красиво подать модель!

⏳ Продолжительность - 7 дней

Запишись по ссылке 👇
https://srflnk.ru/mvOunb

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

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

Вызываем демонов с printf

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

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

#cpp #programming

👉 @cpp_lib

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

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

Как вывести форматированный текст на экран в C++

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

Но как сделать это оптимально и кроссплатформенно?

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

#cpp #programming

👉 @cpp_lib

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

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

Создаём проект на С++ для Unreal Engine 5

#01. Создаём FPS-проект на С++
#02. Рефакторинг персонажа по умолчанию
#03. Рефакторим делегаты
#04. Рефакторинг компонента оружия
#05. Добавим наборы оружия
#06. Создаём оружие
#07. Взаимодействие с предметами
#08. Подбираем оружие
#09. Добавим персонажа Mixamo
#10. Аттачим оружие к персонажу

источник

#cpp #programming

👉 @cpp_lib

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

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

CMake с нуля

00 Введение
01 Структура проекта
02 Генерирование проектных файлов
03 Минимальный проект
04 Таргеты - add_executable
05 Таргеты - add_library
06 Таргеты - target_link_libraries
07 Переменные
08 Кэшированные переменные
09 Установка переменных командной строкой

источник

#cpp #programming

👉 @cpp_lib

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

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

Constrain your user-defined conversions

https://www.foonathan.net/2023/07/constrain-user-defined-conversions/

#cpp #programming

👉 @cpp_lib

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

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

C++ OpenGL 3D Game Tutorial Series From Scratch

1: Making the Window with Win32 API
2: Making OpenGL 3D Engine
3: Drawing a Triangle
4: Shaders
5: Animations
6: The Matrix
7: Rendering 3D Cube
8: Entity System

источник

#cpp #programming

👉 @cpp_lib

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

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

Курс современного C++ | Боннский университет, Германия.

Course Introduction and Hello World
Variables, Basic Types, Control Structures
Compilation, Debugging, Functions, Header/Source, Libraries, CMake
Google Test, Namespaces, Classes
Move Semantics, Classes
Polymorphism, I/O, Stringstreams, CMake find
Static, Numbers, Arrays, Non-owning pointers, Classes
Pointers, const with pointers, Stack and Heap, Memory leaks
Smart/Unique/Shared ptrs, Associative con., Enumeration
Templates, Iterators, Exceptions, Program input parameters, OpenCV

источник

#cpp #programming

👉 @cpp_lib

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

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

ТОП-3 вопроса о внесении программ в Реестр отечественного ПО
 
Вопрос №1
На какой срок ПО включается в Реестр Минцифры? 
ПО включается в Реестр на неограниченный срок. При этом Минцифры ежегодно проверяет продолжает ли Ваше ПО соответствовать необходимым критериям и, в случае несоответствия, исключает ПО из реестра.
 
Вопрос №2
Какие льготы дает внесение в Реестр?
Внесение в Реестр позволяет: участвовать в государственных и муниципальных закупках; обнулять свой НДС при продаже программного продукта; получать гранты; принимать участие в акселераторах для малого бизнеса и стартапов.
 
Вопрос №3
Если ПО не внесено в Реестр, может ли оно быть признанным российским?
Продукты, не включенные в Реестр, не считаются российскими даже если полностью созданы российскими компаниями. 
 
Проверьте, можно ли включить ваш продукт в Реестр Минцифры, пройдя тест по ссылке, и получите скидку 25% на внесение ПО в Реестр.

👉 ПРОЙТИ ТЕСТ 👈

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

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

✅Приглашаем на открытый урок по С++ от OTUS

Тема:
Почему в C++ 13 способов передать параметр в функцию?
Дата: 22 августа, 20:00
Преподаватель: Павел Филонов, Ex-Data Science Manager в Kaspersky

Урок пройдёт в рамках курса «Специализация С++ Developer» от OTUS

🔹Что будет на занятии:

- синтаксис передачи параметров в функции;
- константы, указатели, ссылки, умные указатели, lvalue, rvalue, forward reference;
- практические советы по объявлению функций, основанные на C++ Core Guidelines.

🔸Чему вы научитесь:

- узнаете про разнообразие способов объявления параметров функции;
- сможете обоснованно выбирать, какой способ использовать в разных ситуациях.

Доступ к уроку бесплатный. После него вы сможете продолжить обучение на курсе, который доступен в рассрочку!

♦️Регистрация: https://otus.pw/3Ph6/

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

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

Самый быстрый и безопасный PNG декодер в мире

TL;DR: декодер изображений PNG из стандартной библиотеки языка программирования Wuffs работает в 1.22–2.75 раза быстрее, чем libpng (широко используемая реализация PNG декодера на C с открытым исходным кодом), C-библиотеки libspng, lodepng и stb_image, а также самые популярные библиотеки для работы с PNG на Go и Rust.

Декодирование PNG с помощью Wuffs обсуждалось на Hacker News №1, Hacker News №2, /r/programming, /r/rust и lobste.rs.

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

#cpp #programming

👉 @cpp_lib

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

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

Молниеносный фреймворк нейронных сетей на C++/CUDA (by nvlabs)

https://www.libhunt.com/r/tiny-cuda-nn

#cpp #programming

👉 @cpp_lib

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

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

Выносим за скобки настройки CMake

Каждый день я создаю множество однотипных проектов C++ с системой сборки cmake. И открывая проекты в IDE, каждый раз снимаю галочки с типа сборки, оставляя только Debug. А ещё меняю путь к папке сборки. Мелочь, а утомляет.

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

Оказывается, существуют пресеты. Пресеты позволяют вынести параметры сборки из CMakeLists.txt. Это нужно для того, чтобы ваши проекты без проблем собирались под разные платформы и тулчейны. Пресет представляет из себя json-файл, в котором задаются различные параметры, влияющие на сборку проекта (опции конфигурации, флаги компилятора и т. д.).

https://habr.com/ru/companies/timeweb/articles/741868/

#cpp #programming

👉 @cpp_lib

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

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

⚡️Сишарповец, апнуться — просто!

Начните на бесплатном вебинаре онлайн-курса «C# ASP.NET Core разработчик» — «ASP.NET: взаимодействие с источниками данных»: регистрация

На бесплатном занятии мы:
— познакомимся с видами баз данных;
— разберем, как работать с реляционными и нереляционными базами данных напрямую и через ORM.

🔥Экспертизой поделится Дмитрий Гурьянов — опытный Тимлид команды разработки CRM-решений на платформе .NET.

— Продолжить обучение после вебинара по спеццене можно на полном курсе, доступном также в рассрочку.

Нативная интеграция. Информация о продукте www.otus.ru

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

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

Исправление GCC для создания фактически переносимых исполняемых файлов

https://ahgamut.github.io/2023/07/13/patching-gcc-cosmo/

#cpp #programming

👉 @cpp_lib

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

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

ТОП вопросов на С++ собеседовании | Вопросы и задачи с реальных собеседований

00:00 - Введение
02:07 - Общие вопросы на собеседовании по С++
03:46 - Стандартная библиотека С++
06:53 - Указатели в С++
07:51 - Виртуальность в С++
09:51 - Шаблоны в С++
11:52 - Заключение

источник

#cpp #programming

👉 @cpp_lib

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

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

⚡️Сишарповец, пора расти дальше!

Узнайте больше про C# ASP.NET Core-разработку ЗАВТРА, 3 августа в 20:00 мск на бесплатном вебинаре онлайн-курса в Отус — «Стандартные middleware своими руками»: регистрация

На
бесплатном занятии мы:
— изучим, какие middleware по умолчанию используются в ASP.NET проектах;
— узнаем, зачем они нужны, как они устроены;
— реализуем свои аналоги.

🔥Экспертизой поделится Антон Герасименко — опытный .net developer + lead.

— После вебинара вы сможете продолжить обучение по спеццене, оплатив курс, в том числе, в рассрочку.

Нативная интеграция. Информация о продукте www.otus.ru

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

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

C++ с нуля

00 | Введение
01 | Hello World
02 | Биты, байты и двоичная система
03 | Типы данных в C++
04 | Операции с переменными
05 | Логические операции и операции сравнения
06 | Побитовые логические операции
07 | Функции
08 | Компиляция и линковка
09 | Безопасные и небезопасные преобразования
10 | Cсылки
11 | Указатели
12 | Область видимости
13 | Ветвление: if else
14 | switch
15 | Циклы while, do while, for
16 | enum
17 | struct

Все видео доступны на youtube

#cpp #programming

👉 @cpp_lib

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

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

🎮 Прими участие в бесплатном курсе по 3D моделированию для игр в Blender

Регистрация по ссылке👇
https://srflnk.ru/mvOunb

За 4 занятия ты поймешь, что создавать свои игровые модели может каждый!

📢 Что будем делать:
- Подробно разберем интерфейс Blender
- Изучим технику блокинга формы
- Научимся работать с полигональным моделированием и созданием Lowpoly моделей под игры
- Научимся настраивать pbr материалы в движке Eevee, а также работать со светом и настройками визуализации, чтобы красиво подать модель!

⏳ Продолжительность - 7 дней

Запишись по ссылке 👇
https://srflnk.ru/mvOunb

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

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

C++23: Alias declarations in for loop init-statements

https://www.sandordargo.com/blog/2023/07/12/cpp23-extended-init-statement-with-alias-declaration

#cpp #programming

👉 @cpp_lib

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

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

⚡️Скорость разработки ПО падает по мере роста размера проекта. Инструменты разработки не могут изменить тенденции, а лишь замедлить и отсрочить неизбежное. SOLID является одной из практик, которая гарантирует неизменность скорости разработки.

Узнайте больше про SOLID-принципы на бесплатном вебинаре онлайн-курса «Архитектура и шаблоны проектирования» в Отус — «SOLID как условие постоянной скорости разработки»: регистрация

На бесплатном занятии мы:
— разберем, почему SOLID принципы являются достаточным условием сохранения скорости разработки;
— рассмотрим простой и понятный механизм их применения для получения повторно используемого кода.

🔥Экспертизой поделится Евгений Тюменцев — опытный директор компании по разработке программного обеспечения.

Нативная интеграция. Информация о продукте www.otus.ru

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

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

🎮 Прими участие в бесплатном курсе по 3D моделированию для игр в Blender

Регистрация по ссылке👇
https://srflnk.ru/mvOunb

За 4 занятия ты поймешь, что создавать свои игровые модели может каждый!

📢 Что будем делать:
- Подробно разберем интерфейс Blender
- Изучим технику блокинга формы
- Научимся работать с полигональным моделированием и созданием Lowpoly моделей под игры
- Научимся настраивать pbr материалы в движке Eevee, а также работать со светом и настройками визуализации, чтобы красиво подать модель!

⏳ Продолжительность - 7 дней

Запишись по ссылке 👇
https://srflnk.ru/mvOunb

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

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

Первый проект длиною в полтора года…

На дворе 2021 год, я занимаюсь ремонтом электроники уже на протяжении десяти лет. Свободное от работы время я посвящаю изучению 3D-моделирования и печати. Для этих целей в 2018 году были куплены два самодельных FDM-принтера.

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

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

Уже вечером этого дня я изучаю дома плату и первый раз узнаю такие слова, как "Asic", майнер, майнинг. Изучив немного вопрос, понимаю, что имею на руках плату одного такого устройства, а в данном случае именно AntMiner S9.

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


#cpp #programming

👉 @cpp_lib

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

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

Оптимизация GUI на Qt

Как правило, при создании desktop-приложений на платформе Qt не возникает проблем, связанных с медленностью работы GUI. Qt – платформа достаточно надежная, неплохо вылизанная по всем параметрам, в том числе и по скорости работы. Однако всё же иногда бывают ситуации, когда из-за обилия виджетов графический интерфейс немного притормаживает, и это печально). В этой статье я приведу один частный пример простого графического интерфейса и покажу, как за два шага можно сначала ускорить его в 11 раз, а потом и в целых 34 раза. Вдобавок к этому, я постараюсь немного осветить механизм принятия решения для таких оптимизационных задач, постараюсь показать направление мыслей для правильного решения. Поехали!

https://habr.com/ru/post/672962/

#cpp #programming

👉 @cpp_lib

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