Библиотека C/C++ разработчика
6.81K subscribers
655 photos
690 videos
8 files
940 links
Полезные материалы по всему, что может быть полезно плюсовику/сишнику. По всем вопросам @evgenycarter
Download Telegram
Шпаргалка по модели памяти С++11

Модель памяти представляет из себя спецификацию допустимого поведения многопоточных программ, работающих с разделяемой памятью (shared memory) [1]. Наиболее примитивной моделью является последовательная согласованность, где все инструкции из всех потоков образуют общий порядок, согласованный с порядком выполнения программы в каждом потоке [2].

Одной из наиболее важных фич C++11 является модель памяти, поддерживающая параллелизм, которая позволяет писать многопоточные программы, не полагаясь на различные расширения для конкретных целевых платформ.

https://people.cs.pitt.edu/~xianeizhang/notes/cpp11_mem.html

#cpp #programming

👉 @cpp_lib
👍3
Как мы анализируем потребление памяти нативными приложениями (C++, Windows, Linux)

Технологическая платформа 1С:Предприятие – это большой программный продукт (только на С++ - более 10 миллионов строк кода, а есть ещё Java и JavaScript). Подробнее про устройство платформы можно прочитать тут.

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

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

https://habr.com/ru/companies/1c/articles/761012/

#cpp #programming

👉 @cpp_lib
👍2
Блеск и нищета std::format

Сравнительно недавно в stdlib плюсов появилось форматирование строк «как в питоне», а точнее, как в библиотеке fmt. И я, как смелый и отчаянный, решил этим воспользоваться. Возможно, аксакалы и настоящие разработчики скажут, что я всё делаю не так, и вообще не то, но я буду рад такой критике, если она поможет легче жить ;)

Итак, приступим. Вам понадобится свежий компилятор и стдлиб. На cppreference зеленеют красивые надписи (since C++20), круто! 2020-й уже давно прошёл, да и в мейкфайлах/vcxproj мы везде давно ставим --std=c++20, кто посмелее — даже больше. Статьи про std::format выходят уже несколько лет, и даже переводы на хабре есть [1], [2]. Значит, сейчас зафигачим маленький инклюдик, пройдёмся sed -e '...' по исходникам, и всё будет в шоколаде.

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

#cpp #programming

👉 @cpp_lib
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Минимально жизнеспособный декларативный графический интерфейс на языке C++

https://ossia.io/posts/minimum-viable/

#cpp #programming

👉 @cpp_lib
🔥8👍1
Вглубь std::unordered_map: магические числа

Все любители кодокопания заканчивают либо хорошо, либо плохо. Мне повезло. Поэтому я решила написать свою первую статью.

Как всё начиналось
Мой друг игрался со вставкой в unordered_map и заметил странную закономерность в изменении параметра bucket_count с ростом числа элементов в таблице.

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

#cpp #programming

👉 @cpp_lib
👍5
Media is too big
VIEW IN TELEGRAM
С++ для начинающих: советы по улучшению кода

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

00:00 Интро
00:09 Совет 1
00:34 Совет 2
01:00 Совет 3
01:23 Совет 4
01:48 Совет 5
02:21 Совет 6
02:36 Совет 7
03:44 Совет 8
04:54 Заключение

источник

#cpp #programming

👉 @cpp_lib
👍4🥱1
Media is too big
VIEW IN TELEGRAM
Instant Messaging App in C++

Код-ревью простенького чатика, написанного самим же автором видео.

0:00 - Intro
1:06 - Building the code
2:38 - Running all the projects
7:18 - Project architecture
7:52 - How I write APIs
10:20 - Walnut-Networking API overview
11:49 - Removing external header includes from our own headers
17:50 - What are pointers really
20:00 - Type forward declarations
24:00 - Walnut::Server API and code overview
30:03 - Walnut::Client API and code overview
30:57 - Network utility functions
32:44 - Client connection status

https://github.com/TheCherno/Walnut-Chat


источник

#cpp #programming

👉 @cpp_lib
👍4
Раскрытие возможностей управления памятью в языке C++

До создания компании Educative я работал в Facebook и Microsoft. Основным направлением моей работы там было использование языка C++. Я изучил язык C++ в самом начале своей карьеры программиста. Однако только работая в Microsoft, я по-настоящему понял, что такое управление памятью в языке C++, и все возможности, которые оно дает.

https://dev.to/fahimulhaq/uncovering-the-power-of-memory-management-in-c-3bm9

#cpp #programming

👉 @cpp_lib
👍5