Библиотека C/C++ разработчика
7.2K subscribers
686 photos
719 videos
8 files
983 links
Полезные материалы по всему, что может быть полезно плюсовику/сишнику. По всем вопросам @evgenycarter
加入频道
Поздравляем с Днем программиста!
👍252👏2
47 Атрибутов Хорошего С-кода

Этот текст адресован когорте программистов на С(ях). Это не академические атрибуты из учебников это скорее правила буравчика оформления сорцов из реального prod(а). Некоторые приемы совпали с MISRA, некоторые с CERT-C. А кое-что является результатом множества итераций инспекций программ и перестроек после реальных инцидентов. В общем тут представлен обогащенный концентрат полезных практик программирования на С(ях).

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

#cpp #programming

👉 @cpp_lib
👍8
Улучшенные итераторы с диапазонами в C++.

Есть еще больше причин предпочесть библиотеку ranges классической стандартной библиотеке шаблонов. Итераторы ranges поддерживают унифицированные правила поиска и обеспечивают дополнительные гарантии безопасности.

https://www.modernescpp.com/index.php/improved-iterators-with-ranges

#cpp #programming

👉 @cpp_lib
👍4
Идиома CRTP и написание общих функций в C++

Что такое идиома CRTP?
Термин CRTP (curiously recurring template pattern) появился в 1995 году в одноименной статье, написанной Джеймсом О. Коплином. Он предполагает специализацию базовых классов с использованием производных классов в качестве аргументов шаблона. Далее

#cpp #programming

👉 @cpp_lib
👍9
FizzBuzz по-сениорски


- Добрый день, я на интервью на позицию старшего разработчика.

- Здравствуйте, давайте начнем с небольшого теста, пока я ваше CV смотрю. Напишите программу, которая выводила бы числа от 1 до, скажем, миллиарда, притом если число кратно трем, то вместо числа выводится Fizz, если кратно пяти, то Buzz, а если и трем, и пяти, то FizzBuzz.

Серьезно, FizzBuzz? Задачка для начальной школы, на сениорскую позицию? Ну ладно. Далее

#cpp #programming

👉 @cpp_lib
👍17
Media is too big
VIEW IN TELEGRAM
Ночь бэкендеров в Яндекс Банке

Собеседования — это долго, скучно, иногда мучительно и не всегда понятно. Как вообще можно понять за пару часов, хочешь ли ты работать где-то в ближайшие пару лет? Поэтому в Финтехе Яндекса придумали кое-что получше — препати для тех, кто хочет взять компанию на тест-драйв. Можно бесконечно смотреть отзывы на Хабр Карьере, но лучше один раз увидеть всё своими глазами.

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

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

P.S.: дресс-кода нет, но есть задачка с кодом. Если ты действительно бэкендер, то решишь её без труда и приглос у тебя в кармане! Подробности 👉 тут.
👍5
Media is too big
VIEW IN TELEGRAM
Джон Кармак: Doom, Quake, VR, AGI, программирование, видеоигры и ракеты | Lex Fridman Podcast

Джон Кармак - легендарный программист, сооснователь компании id Software и ведущий программист многих революционных видеоигр, включая Wolfenstein 3D, Doom, Quake и серию игр Commander Keen. Он также является основателем компании Armadillo Aerospace и на протяжении многих лет техническим директором Oculus VR.

0:00 - Introduction
1:57 - Programming languages
33:01 - Modern programming
43:03 - Day in the life
50:53 - Hard work
54:06 - Pizza and Diet Coke
56:50 - Setup
1:22:08 - id Software
1:54:58 - Commander Keen
2:01:44 - Hacker ethic
2:09:24 - Wolfenstein 3D
2:29:21 - Doom
2:43:42 - Quake
3:08:02 - John Romero
3:15:49 - Metaverse
3:44:11 - Elon Musk
3:50:06 - Mars
3:59:09 - Nuclear energy
4:02:47 - AGI
4:49:59 - Andrej Karpathy
4:52:57 - Martial arts
5:01:57 - Advice for young people
5:10:57 - Meaning of life

источник

#cpp #programming

👉 @cpp_lib
👍41
This media is not supported in your browser
VIEW IN TELEGRAM
Змейка на C++ в стиле реактивного программирования

Привет всем, и добро пожаловать в мир современного C++ и реактивного программирования =)

https://itnext.io/snake-game-on-c-in-the-reactive-programming-way-19310a73923a

#cpp #programming

👉 @cpp_lib
👍71
Руководство по CMake для разработчиков C++ библиотек


В этой статье я расскажу о том, как правильно писать современные CMakeLists.txt файлы для C++ библиотек. Идеи, используемые в ней, основаны на докладе Крейга Скотта (разработчик CMake) и докладе Роберта Шумахера (разработчик vcpkg) c CppCon 2019. Поскольку мне достаточно часто приходится разрабатывать С++ библиотеки, я создал для себя небольшой шаблон cpp-lib-template, который будет использоваться в этой статье в качестве примера.

Замечу, что я предполагаю, что читатель этой статьи имеет опыт работы с CMake, однако, как и я, часто задается вопросом, как правильно ему сделать сборку своей библиотеки.

#cpp #programming

👉 @cpp_lib
👍81
Сравнение библиотек параллелизма Rust и C++

Функции параллелизма, включенные в стандартную библиотеку Rust, довольно похожи на те, что были доступны в C++11

https://blog.m-ou.se/rust-cpp-concurrency/

#cpp #programming

👉 @cpp_lib
👍2
Альтернативы исключениям С++ и зачем они нужны

Современные тенденции в области аппаратного обеспечения ведут к тому, что использование исключений на C++ всё труднее и труднее оправдать. В представленной работе эта проблема иллюстрируется наглядно, даётся её количественная оценка и обсуждаются потенциальные будущие направления исправления исключений.

Original https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2544r0.html

#cpp #programming

👉 @cpp_lib
👍3
Media is too big
VIEW IN TELEGRAM
Learning C++20

Jthreads and stop tokens
Concepts
Atomic References
Spans
The Spaceship Operator
Likely and Unlikely Attributes
Custom Concepts
Immediate Functions
Constrained Algorithms

Плейлист https://www.youtube.com/playlist?list=PLxNPSjHT5qvub0YaHcWQG9uX-8p_aKERd

#cpp #programming

👉 @cpp_lib
👍5
Корутины C++20 и многозадачность на примере контроллеров stm32

Одним из наиболее ярких нововведений, которые получил язык в стандарте C++20, является поддержка сопрограмм (или корутин). Разработчики ПО для микроконтроллеров сразу могут заметить, что корутина похожа на задачу в операционной системе.

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

#cpp #programming

👉 @cpp_lib
👍5🔥2
Physically-based rendering. Ray marching

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

Часть 1 Часть 2

#cpp #programming

👉 @cpp_lib
👍5