Date | Title | Description |
05.11.2024 | Поиск ошибок в юнит-тестах | Давно хотелось написать статью, что юнит-тесты — это хорошо, но не стоит забывать, что они тоже могут содержать ошибки. Сейчас встретился проект DPDK, тесты которого хорошо демонстрируют этот нюанс. Давайте посмотрим, как выглядят типичные ... |
31.10.2024 | Игровое поле экспериментов: какие ошибки могут подстерегать программиста при создании эмулятора | Создание эмулятора для игр Xbox 360 на ПК — задача не из простых, и на каждом шагу можно столкнуться с коварными багами. Сегодня рассмотрим типичные проблемы, которые можно обнаружить при разработке, на примере проекта Xenia.Введение
Не так... |
25.10.2024 | Sentinel C++20. Пишем свой Sentinel | О понятии Sentinel говорят мало, особенно в русскоязычном пространстве. Вместе с Юрием Вашинко, опытным тимлидом и спикером нашего курса «С++ разработчик» сегодня рассмотрим, что такое Sentinel и как его использовать:
В каждом разработчике ... |
18.10.2024 | Профилирование: сравниваем инструменты pt-pmp и perf на реальных примерах | Привет, Хабр! В предыдущей статье был разобран первичный анализ работы приложения, какие инструменты стоит использовать для сбора информации и как с этими инструментами работать. Напомню, что речь шла о двух утилитах: poor man's profile (pt... |
09.10.2024 | PPSSPP или всё же psp? Смотрим баги в коде из будущего | Думаю, многих из нас охватывает тёплое чувство ностальгии, когда речь идёт о PSP. Эта портативная консоль, выпущенная в 2004 году, стала настоящим прорывом для своего времени. Она подарила нам возможность наслаждаться полноценными игровыми ... |
05.10.2024 | Пилим движок Arcanum. Урок 03. Работа с памятью, используем полиморфные аллокаторы | Приветствую Хабравчане!
Прошлые уроки:
Пилим движок Arcanum. Урок 01. Начало
Пилим движок Arcanum. Урок 02. Работа с файлами игры, рисуем первый спрайт
Продолжаем мучить разрабатывать движок для моей любимой игры Arcanum. В данном уроке рас... |
03.10.2024 | Некоторые малоизвестные фичи, фокусы и причуды языка C | В этом посте разобраны некоторые фокусы, причуды и фичи языка C (некоторые из них – весьма фундаментальные!), которые, казалось бы, могут сбить с толку даже опытного разработчика. Поэтому я потрудился сделать за вас грязную работу и (в прои... |
02.10.2024 | Zero-cost Property в С++ | Расскажу об одном решении которое имеет больше смысла в качестве упражнения, а не практической пользы. Постановка задачи звучит так: Хочу получить в C++ семантику property как в C# и без накладных расходов.
В начале будет результат к которо... |
01.10.2024 | Кубы OFFZONE'24 (writeup) | Данный текст всего лишь небольшой writeup трех реверсерских историй вокруг маскота конференции OffZone 2024. Тот самый символ конференции – загадочный куб (таинственный предмет с глазом). Как объясняют организаторы про кубоглазы – «идея был... |
29.09.2024 | Bridging the Gap: Compiling C in JavaScript with Bun | In the world of programming, C is the backbone. It powers everything from file compression to network interactions. Even the browser you use to read this article relies on C. But what if you could harness the power of C directly from JavaSc... |
29.09.2024 | The Winamp Saga: Open Source, Licensing Woes, and a Legacy Reborn | In late September 2024, the digital world was rocked by revelations surrounding Winamp, the iconic media player that has survived the test of time. The Llama Group, the current steward of Winamp, opened its source code to the public, but no... |
27.09.2024 | std::array в С++ не медленнее массива в С | Или почему не нужно бояться того, что удобно работает.
Стойте! Уберите руки от клавиатуры, дайте человеку сказать! У этой статьи есть обоснованные причины и благая цель! В прошлой моей статье о массивах (которую необязательно читать для пон... |
25.09.2024 | Небольшая хитрость для простого взаимодействия Rust и C++ | На работе я переписываю запутанный C++ код на Rust.
Из‑за активного использования коллбеков (вздох), Rust иногда вызывает C++, а C++ иногда вызывает Rust. Все это благодаря тому, что оба языка предоставляют C API для функций, которые можно ... |
11.09.2024 | The Evolution of C++: A Dive into Smart Pointers and Ranges | C++ is a language that evolves like a river, carving new paths through the landscape of programming. Recent updates have introduced powerful features that enhance the way developers interact with data. This article explores two significant ... |
11.09.2024 | Дорогая, я уменьшил {fmt}: уменьшил размер до 14kB и избавился от рантайма C++ | Библиотека форматирования {fmt} известна своим небольшим влиянием на размер бинарников. Чаще всего её код в несколько раз меньше по сравнению с такими библиотеками, как IOStreams, Boost Format или, что иронично, tinyformat. Это достигается ... |
10.09.2024 | C++ Дайджест №8 (2 сентября – 8 сентября 2024) | Привет, Хабр! Сегодня я хочу вам представить подборку интересных новостей и материалов по C++ за последнюю неделю.
Приятного чтения!📝 Статьи
Understanding the inner workings of C++ smart pointers - The shared_ptr — вам всегда было интересно... |
10.09.2024 | Кратко про библиотеку Range в C++ | Привет, Хабр!
С выходом C++20 библиотека Range получила свое официальное место в языке, что ознаменовало некоторый важный шаг в развитии работы с контейнерами и итераторами. Это обновление ввело новый подход к манипуляциям с данными.
Итак, ... |
01.09.2024 | The Rise of New Programming Languages: A Shift from C++ | In the vast landscape of programming languages, C++ has long been a titan. Born in 1985, it has powered countless applications and systems. Yet, as the digital world evolves, whispers of change grow louder. New contenders are emerging, vyin... |
31.08.2024 | Как убить единорога или попытка навести порядок с инициализацией переменных в языке C++ | Знаете, я никогда не задумывался, насколько плоха или хороша инициализация переменных в языке C++. Я просто использовал ее. И не имел никаких проблем. Но недавно я посмотрел пару видео, пролистал несколько статей и да, я должен признать… он... |
27.08.2024 | Аналитики IEEE Spectrum опубликовали рейтинг языков программирования за 2024 год | Аналитики Института инженеров электротехники и электроники (IEEE) опубликовали рейтинг популярности языков программирования за 2024 год. В пятёрке лидеров оказались Python, Java, JavaScript, C++ и TypeScript.
Самый активный рост показал Typ... |
24.08.2024 | Flutter Entertainment's Bold Move: Investing in Hyderabad's Future | In a world where technology and business services intertwine, Flutter Entertainment is making waves. The company has announced a significant investment of $3.5 million to establish a Global Capability Centre (GCC) in Hyderabad. This decisio... |
23.08.2024 | Что значит инициализировать int в C++? | Недавно я получил по почте от Сэма Джонсона этот вопрос. Вот слегка отредактированное письмо Сэма:
«Возьмём для примера этот код в локальной области видимости функции:
int a; a = 5;
Многие люди считают, что инициализация происходит в строке... |
17.08.2024 | The Evolution of C++: Unpacking Range-Based For Loops and Game Engine Development | C++ is a language that has evolved like a fine wine, maturing over decades. Its syntax and features have been refined, offering developers powerful tools for crafting efficient and elegant code. Among these tools is the range-based for loop... |
14.08.2024 | «Range-based for»: что интересного лежит на поверхности | Новый синтаксис для циклов for в C++ появился уже давно - более десяти лет назад в стандарте C++11. Идея, скрывающаяся за этим синтаксисом, не является сколь-нибудь запутанной, и практически все, кто интересуются новыми свойствами языка, бы... |
13.08.2024 | Flax Engine. Знакомство с игровым движком и анализ его исходного кода | "Как будто у Unreal и Unity родился ребёнок" — такое трогательное описание дали этому движку в GameDev-сообществе. Эта фраза не только мило звучит, но и точно передаёт его суть, ведь движок действительно задумывался как нечто сред... |
11.08.2024 | Реализуем эффективный тупль с помощью C++26 | Свет видел много любительских реализаций std::tuple, и реализация своих велосипедов — наверное, действительно действенный способ обучения: вряд-ли можно сказать, что ты что-то по-настоящему понимаешь, если не можешь объяснить, как это что-т... |
07.08.2024 | Как найти работу для фиксиков: анализируем Godot Engine | Разработка игр и их прохождение могут быть невероятно увлекательными и затягивающими занятиями, приносящими огромное удовольствие. Но ничто так не портит впечатление от игрового процесса, как коварно спрятавшийся баг. Поэтому сегодня под на... |
05.08.2024 | TIOBE Programming Language Index News (August 2024): Python Clinches Its ‘Hegemony’ | Python, the number one programming language in the TIOBE Programming Language Community Index in August, has further solidified its place at the top.
Python moved from 16.12% points in July to 18.04% in August, a major jump. This follows an... |
30.07.2024 | 4 типовые ловушки в работе со строками в С и С++ и как их избежать | Некорректное использование строк может стать настоящей ахиллесовой пятой защиты программы. Поэтому так важно применять актуальные подходы к их обработке. Под катом разберём несколько паттернов ошибок при работе со строками, поговорим о знам... |
29.07.2024 | Тысяча и одна библиотека С++ | В жизни каждого программиста С++ рано или поздно возникает задача, которую кто-либо уже решил. Однако найти это решение бывает очень непросто в силу разных причин: оно недостаточно разрекламировано, либо имеет нечеткую документацию, или воз... |
27.07.2024 | The Power of Metrics: Safeguarding Your .NET Applications with OpenTelemetry and Prometheus | In the fast-paced world of software development, every second counts. When an application goes live, the stakes are high. Bugs can lurk in the shadows, waiting to pounce. But fear not; there are tools that can shine a light on these hidden ... |
26.07.2024 | Дебажим баги в дебаггере x64dbg. Без дебаггера | Ни один процесс разработки программы не проходит без отладки. Современные IDE обеспечивают программиста встроенным отладчиком. Однако бывают ситуации, когда использование IDE для отладки избыточно или невозможно, и тогда на помощь приходят ... |
24.07.2024 | Фиксим баги в вашем AI или разбор ошибок в OpenVINO | Друзья-разработчики, приглашаем вас продолжить захватывающее путешествие по дебрям кода Intel OpenVINO! Вооружившись статическим анализатором аки детективы, мы разоблачим наиболее коварные, интересные ошибки и опечатки, а также их скрытые т... |
15.07.2024 | Возможности С++: от стандартных алгоритмов до диапазонов (Ranges) | Привет, Хабр! Меня зовут Николай, я разработчик С++ в SimbirSoft. В предыдущей статье мы с вами рассмотрели применение стандартных алгоритмов в повседневном коде и их преимущества над обычными циклами. В продолжение этой темы мне хотелось б... |
08.07.2024 | Насекомое 13 лет сидит в вашем компиляторе и не собирается оттуда вылезать | Представим, что у вас идеальный проект. Таски пилятся, компилятор компилирует, статические анализаторы анализируют, релизы релизятся. В какой‑то момент вы принимаете волевое решение открыть древний файл, в который никто не залезал уже много... |
07.07.2024 | Кадры в РФ — V. Тримодальное распределение зарплат часть 2 | Для лиги лени: ежемесячное нытье про зарплаты и наличие кадров. Поток сознания от нейросети, мысли вслух, рукопись найденная в солидоле ванне. Рукопись написана на архаичном протоязыке, и потому некоторые термины и идиоматические выражения ... |
24.06.2024 | Чистый код: Данные | Чистый код не набор внешних признаков, таких как наименование переменных и наличие или отсутствие комментариев, хотя они тоже важны. Чистый код — это архитектура программного продукта, которая позволяет легко читать и модифицировать програм... |
21.06.2024 | Go развивается в неверном направлении | Язык программирования Go известен своей простотой в использовании. Благодаря продуманному синтаксису, возможностям и инструментарию, Go позволяет писать легко читаемые и поддерживаемые программы произвольной сложности (см. этот список на Gi... |
19.06.2024 | Ненавижу, _____, C++ массивы | Или почему мне кажется, что про них нужно знать, но не нужно использовать.Вступление
Друзья, вы помните момент, когда впервые сунули указатель на первый элемент массива в оператор sizeof, и ваш код перестал работать так, как вы задумывали? ... |
18.06.2024 | C++20 в bare-metal программировании, работа с регистрами микроконтроллеров Cortex-M | RP2040 peripheral registers
Сегодня я хотел бы обсудить тему, с которой так или иначе сталкивался почти каждый программист встраиваемых устройств без использования настоящих операционных систем, а именно прямое управление периферийными узла... |
17.06.2024 | UB or not UB: дублируем элемент std::vector | В статье выясним, можно ли с точки зрения стандарта языка C++ тривиальным вызовом push_back продублировать элемент std::vector. Отвечая на простой вопрос, столкнемся с более интересными: что собой представляет внутренний мир вектора, как &q... |
17.06.2024 | С++ вам не нянька! Делайте, что хотите, но виноваты будете сами | Поговорили о перспективах С++, его особенностях и востребованности на рынке с Андреем Никитиным, ведущим инженером-разработчиком направления системного программирования Нижегородского подразделения компании «Криптонит».
С++ уже более сорока... |
11.06.2024 | Сколько UB в моём компиляторе? | У C и C++ программистов две головные боли в плане ошибок: утечки памяти и неопределённое поведение. И как вы догадались из названия, речь пойдёт о неопределённом поведении. И каком-то "моём" компиляторе. Если точнее, то о наборе к... |
05.06.2024 | Как пересобрать ядро для WSL2 и остаться в живых | Мы активно пользуемся WSL2 для того, чтобы открывать линуксовые коры в Visual Studio. Для обеспечения консистентности символов и коры мы монтируем squashfs образ, созданный в целевой системе. После очередного апдейта целевого дистрибутива, ... |
29.05.2024 | «Hello, World!» от мира сжатия данных. Канонический алгоритм сжатия данных Хаффмана | На данную тему была написана не одна сотня статей, но во всех, что видел, для построения двоичного дерева поиска использовались структуры по типу приоритетной очереди, хотя достаточно отсортировать массив частот в порядке убывания и отбрасы... |
26.05.2024 | Как Боб текстовый файл считывал | Как-то раз Бобу поручили построчно обработать текстовый файл. Боб решил решить эту задачу на C++, так как известно, что мало найдётся языков, которые могли бы потягаться с C++ в скорости. Поскольку C++ для Боба — дело новое, неосвоенное, он... |
20.05.2024 | Фабрика для std::variant: как объединить compile-time и run-time, чтобы получить выигрыш от обоих | Привет, Хабр! Меня зовут Михаил Полукаров, я занимаюсь разработкой Desktop-версии пользовательского приложения для совместной работы сотрудников с любого устройства VK Teams.
Если вы тоже работали с большими проектами, где активно применяют... |
16.05.2024 | Многообразие связных списков | Связный список – классическая структура данных, которая позволяет быстрые вставки/удаления, но при этом просаживает другие операции (случайный доступ к элементу). Мы пройдёмся от базовой реализации до других возможных вариаций этой структур... |
14.05.2024 | 11 мгновений ReactOS: user mode становится лучше? | ReactOS — это проект, где победу над регрессией, появление новой фичи или её рабочего прототипа празднуют так громко, что FOSS-сообществу приходится отвлекаться от переписывания всего на Rust и полемик о systemd. В последний раз мы проверял... |
07.05.2024 | Проверка игрового движка qdEngine, часть вторая: упрощение C++ кода | В этой статье мы рассмотрим, как статический анализатор PVS-Studio воодушевляет заняться рефакторингом кода. Ведь чем короче, проще и понятнее код, тем меньше в нём ошибок.
В предыдущей статье "Проверка игрового движка qdEngine, часть ... |
02.05.2024 | Подборка крутых докладов по С++ за 2023 год | Скоро начинается новый сезон конференций, а потому предлагаем вам ознакомиться с лучшими докладами по С++ с прошлого сезона. Эта подборка самых громких докладов за 2023 год поможет вам поглубже узнать С++ и набраться вдохновения. Вперёд за ... |
27.04.2024 | Проверка игрового движка qdEngine, часть первая: топ 10 предупреждений PVS-Studio | Баги, которые удалось найти в движке qdEngine, оказались весьма разнообразны, поэтому не хочется мешать всё в кучу в одной публикации. Читатели могут упустить интересные темы, связанные с написанием качественного кода. Поэтому разбор проект... |
16.04.2024 | 35+ бесплатных ресурсов для начинающих разработчиков С++ | Привет. Предположим, вы захотели начать изучать языĸ программирования C++ или, возможно, тех материалов, что уже изучили, вам недостаточно.
Я — Савва, программирую уже больше 7 лет, работаю менеджером команды наставников в Практикуме на кур... |
05.04.2024 | Go-like каналы на C++ | Каналы (channels, pipes) – это удобная абстракция для построения приложений, работающих в многопоточной среде. Они используются для передачи сообщений между потоками и, одновременно с этим, как средство синхронизации потоков. Я буду ссылать... |
05.04.2024 | Как не надо проверять размер массива в С++ | Как часто вам приходится сталкиваться с конструкцией sizeof(array)/sizeof(array[0]) для определения размера массива? Очень надеюсь, что не часто, ведь на дворе уже 2024 год. В заметке поговорим о недостатках конструкции, откуда она берётся ... |
05.04.2024 | Программирование и ИТ во мгле, но это не точно | У меня не получилось объяснить этим вашим ГПТ, какую статью я хочу. Пришлось писать самому и мемы придумывать. Поэтому в статье, будет гиперболизация проблем в айти и в программировании в частности, передергивания, набрасывание на вентилято... |
28.03.2024 | А в чем проблема работать с файлами? | Приветствую.
Год назад меня сильно увлекла тема отказоустойчивости приложений. Я начал изучать различные аспекты ее реализации в программах и больше всего меня заинтересовал процесс работы с диском. Ресурсов для изучения много, но они все р... |
27.03.2024 | Kerberos простыми словами | Введение
Несмотря на то, что уже существует множество различных статей про Kerberos, я всё‑таки решил написать ещё одну. Прежде всего эта статья написана для меня лично: я захотел обобщить знания, полученные в ходе изучения других статей, д... |
22.03.2024 | С 500 мс до нуля, или история о том, как я написал Node.js C++ addon и ускорил скидочный сервис в 500 раз | Приветствую тебя! Меня зовут Дмитрий и я работаю в Lad.
Сегодня я поведаю историю о том, как эволюционировал скидочный сервис одного из наших проектов. Пройдя путь от всеми нелюбимого, "тормозящего" сервиса, до сервиса,
который им... |
08.03.2024 | Корутины C++ для чайников: пишем асинхронный веб-клиент | Написать этот материал меня побудило... отсутствие хороших статей по корутинам в C++ в русскоязычном интернете, как бы странно это не звучало. Ну серьезно, C++20 существует уже несколько лет как, но до сих пор почти все статьи про корутины,... |
07.03.2024 | Это слишком опасно для C++ | Некоторые паттерны стало возможно использовать на практике только благодаря безопасности Rust по памяти, а на C++ они слишком опасны. В статье приведён один такой пример.
Работая над внутренней библиотекой, написанной на Rust, я создал тип ... |
04.03.2024 | Проверяем Blender | Командный центр PVS-Studio: "Как быстро летит время... А ведь в этом году, второго января, Blender исполнилось 30 лет! Как будто ещё вчера мы публиковали статью с разбором ошибок... Как 8 лет назад? Надо срочно исправлять ситуацию!&quo... |
26.02.2024 | Константность в C++
Оглавление
1. Константы — объявление, инициализация, правила использования
2. Константные типы
3. Константные нестатические функции-члены
4. Итераторы
5. Константные параметры функ... | Продолжаем серию «C++, копаем вглубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специальных. Это седьмая статья из серии, список предыдущих статей приведен в конце в разделе 10. Серия ... |
20.02.2024 | Почему проверять результат вызова malloc c помощью assert плохая идея | Указатель, который вернула функция malloc, необходимо проверить перед использованием. Неправильным решением будет использовать для этого макрос assert. В этой статье мы разберём, почему это является антипаттерном.
Под функцией malloc далее ... |
19.02.2024 | Вороной, Манхэттен, рандом | Это история про то, как не довести дело до конца, но получить уйму опыта, и вообще ни разу не обломаться.
Итак, у нас был один программист, один художник, абсолютное непонимание рабочего процесса, незнакомый нам игровой движок и желание что... |
10.02.2024 | Бесплатные курсы для изучения C++ в 2024 году | В 2024 году в сети доступно множество бесплатных ресурсов для изучения C++, которые предлагают высокое качество обучения. Поэтому нет необходимости платить за курсы, если вы можете получить все необходимые знания бесплатно.
Учить C++ в 2024... |
07.02.2024 | Люди не понимают ООП | «ООП для меня означает лишь обмен сообщениями, локальные ограничения и защиту, сокрытие состояния процесса и крайне позднее привязывание», — Алан Кэй (человек, придумавший термин «объектно-ориентированное программирование»)1
Похоже, многим ... |
06.02.2024 | Следует ли проверять указатель на NULL перед вызовом функции free? | Короткий ответ: нет. Тем не менее, раз про это вновь и вновь спрашивают на Reddit, Stack Overflow и других сайтах, пришло время подробно разобрать эту тему. Оказывается, есть много интересного, о чём можно порассуждать.
Функция free
Функция... |
03.02.2024 | Какой тип ordering должен возвращать мой operator в C++? | На Хабре было опубликовано уже достаточно статей, посвященных «spaceship operator» operator ([1], [2], [3], [4]) И этой статьи бы не было, если бы все они были идеальны и описывали его во всей полноте. Но ни одна из них в деталях не рассказ... |
15.01.2024 | Что нам недодали в C++ | Фичи, которых нет
Уже более десяти лет я профессионально занимаюсь C++ разработкой. Я вошел в профессию 2013 году, в самый момент, когда комитет по стандартизации языка C++ раскочегарился и встал на рельсы трехлетних релизов обновленных ста... |
23.12.2023 | Вышла GNU Autoconf 2.72 с поддержкой стандарта C23 и опцией безопасности --enable-year2038 | 22 декабря 2023 года вышла стабильная версия GNU Autoconf 2.72. В новой версии утилиты для создания конфигурационных скриптов добавлена поддержка стандарта C23 (языка программирования C) и стала доступна опция безопасности --enable-year2038... |
10.12.2023 | 30 лет DOOM: новый код — новые баги | Сегодня первой игре из серии DOOM исполняется ровно 30 лет! Мы не могли обойти стороной это событие и в честь этого решили посмотреть, как же выглядит код этой легендарной игры спустя годы.Предисловие
DOOM навсегда останется в истории как о... |
14.11.2023 | C++ Дайджест №7 (30 октября – 12 ноября 2023) | Привет, Хабр! Сегодня я хочу вам представить подборку интересных новостей и материалов из мира C++ за последние две недели.
Приятного чтения!⚡️️ Новости и релизы
21 ноября, бесплатно, C++ митап в Москве и онлайне — Константин Владимиров, Ил... |
01.11.2023 | Обзор книги «С++ 20 в деталях»: доступно, но не для джунов | Привет, Хабр! Меня зовут Дмитрий Луцив, я работаю в СПбГУ на кафедре системного программирования и в лаборатории компании YADRO, веду ряд IT-дисциплин на математико-механическом факультете и помогаю вузам актуализировать образовательные про... |
31.10.2023 | C++ Дайджест №6 (16 октября – 29 октября 2023) | Привет, Хабр! Сегодня я хочу вам представить подборку интересных новостей и материалов из мира C++ за последние две недели.
Приятного чтения!⚡️️ Новости и релизы
C++ Moscow №2 — Чуть меньше чем через три недели, 19 ноября, в Москве состоитс... |
31.10.2023 | Проверяем YTsaurus. Доступность, надёжность, open source | В этой статье мы расскажем вам о результатах проверки кода проекта YTsaurus статическим анализатором PVS-Studio и разберём найденные ошибки. Уже больше полугода назад YTsaurus — мощная BigData-система — стала Open Source. Её разработка и ис... |
24.10.2023 | Как и почему я писал для Флиппера на Си-с-классами | Мой Флиппер дошёл до меня больше полугода назад, но что-то под него написать я собрался только сейчас. Его API рассчитаны на язык С — а у меня с ним опыта не очень много. Но проблем с тулингом не возникло — у Флиппера есть своя система сбор... |
18.10.2023 | FreeCAD и C++ код с неопределённым поведением для медитации | Изучая код проекта с помощью статического анализатора, иногда задаёшься вопросом: "Как возникла ошибка и почему её до сих пор не заметили?" Хотите посмотреть пример? Тогда приглашаем познакомиться с этой статьёй.
Противоестественн... |
16.10.2023 | C++ Дайджест №5 (2 октября – 15 октября 2023) | Привет, Хабр! Сегодня я хочу вам представить подборку интересных новостей и материалов из мира C++ за последние две недели.
Приятного чтения!⚡️️ Новости и релизы
Qt 6.6 — Добавление LayoutItemProxy, призванного упростить создание адаптивных... |
13.10.2023 | Глубина кроличьей норы: бинарная граница и ABI C++ | Оценивайте свои силы трезво.
Вопрос ABI (Application Binary Interface), бинарной границы и бинарной совместимости в C++, раскрыт на просторах интернета не так хорошо как хотелось бы. Особенно сложно в его изучении приходится новичкам, потом... |
12.10.2023 | Сборка мусора: как это делается в системном программировании | Давайте поговорим об одной из наиболее критичных по производительности программ, которой вы пользуетесь ежедневно: о вашей операционной системе. Поскольку при каждом разгоне железа вы получаете дополнительную вычислительную мощность, операц... |
05.10.2023 | Python, Go или… готовим сырой видеопоток с полсотни камер | В проектах, связанных с машинным зрением и обучением приходится работать с сырым видеопотоком с камер. Чтобы принимать, предобрабатывать и передавать эти данные нейросетям необходим отдельный программный компонент, который мы условно называ... |
02.10.2023 | C++ Дайджест №4 (18 сентября – 1 октября 2023) | Привет, Хабр! Сегодня я хочу вам представить подборку интересных новостей и материалов из мира C++ за последние две недели.
Приятного чтения!⚡️️ Новости и релизы
LLVM 17.0.1 — Новый мажорный релиз, принесший множество изменений во все проек... |
28.09.2023 | Визуализация алгоритмов стандартной библиотеки C++ (продолжение) | В стандартной библиотеке C++ много разных алгоритмов для работы с контейнерами. С помощью этих алгоритмов можно искать значения, сортировать последовательности, изменять их и делать многое другое. Среди такого большого количества алгоритмов... |
06.08.2023 | C++ Дайджест #0 (24 июля 2023 – 6 августа 2023) | Привет, Хабр! Сегодня я хочу представить вам подборку интересных новостей и материалов из мира C++.
Это пилотный выпуск, так что любые советы, отзывы и рекомендации, как сделать наш дайджест лучше, в комментариях к статье или же напрямую мн... |
04.08.2023 | Дизайн API в С++ | В этом году на C++ Russia я рассказывал про API дизайн. Эта статья — пересказ и переосмысление моего доклада.
То, что я здесь расскажу, основано на моем личном опыте — про API дизайн я думаю уже лет 15, с того момента как в 2008м начал чита... |
28.06.2023 | Подводные камни С++. Решаем загадки неопределённого поведения, ч. 1 | Изучение и понимание неопределённого поведения — важный шаг для разработчика C++, поскольку undefined behavior бывает источником серьёзных ошибок и проблем в программах. UB может проявляться в разных аспектах языка, включая операции с памят... |
23.06.2023 | 60 антипаттернов для С++ программиста, часть 9 (совет 41 — 45) | Перед вами обновлённая коллекция вредных советов для C++ программистов, которая превратилась в целую электронную книгу. Всего их 60, и каждый сопровождается пояснением, почему на самом деле ему не стоит следовать. Всё будет одновременно и в... |
19.06.2023 | 60 антипаттернов для С++ программиста, часть 7 (совет 31 — 35) | Перед вами обновлённая коллекция вредных советов для C++ программистов, которая превратилась в целую электронную книгу. Всего их 60, и каждый сопровождается пояснением, почему на самом деле ему не стоит следовать. Всё будет одновременно и в... |
16.06.2023 | 60 антипаттернов для С++ программиста, часть 6 (совет 26 — 30) | Перед вами обновлённая коллекция вредных советов для C++ программистов, которая превратилась в целую электронную книгу. Всего их 60, и каждый сопровождается пояснением, почему на самом деле ему не стоит следовать. Всё будет одновременно и в... |
13.06.2023 | 21 фича современного C++, которые вам обязательно пригодятся | Итак, судьба снова свела вас с C++, и вы поражены его возможностями с точки зрения производительности, удобства и выразительности кода. Но вот незадача: вы теряетесь в этом многообразии замечательных новых фич и, как следствие, затрудняетес... |
12.06.2023 | 60 антипаттернов для С++ программиста, часть 4 (совет 16 — 20) | Перед вами обновлённая коллекция вредных советов для C++ программистов, которая превратилась в целую электронную книгу. Всего их 60, и каждый сопровождается пояснением, почему на самом деле ему не стоит следовать. Всё будет одновременно и в... |
09.06.2023 | 60 антипаттернов для С++ программиста, часть 3 (совет 11 — 15) | Перед вами обновлённая коллекция вредных советов для C++ программистов, которая превратилась в целую электронную книгу. Всего их 60, и каждый сопровождается пояснением, почему на самом деле ему не стоит следовать. Всё будет одновременно и в... |
07.06.2023 | 60 антипаттернов для С++ программиста, часть 2 (совет 6 — 10) | Перед вами обновлённая коллекция вредных советов для C++ программистов, которая превратилась в целую электронную книгу. Всего их 60, и каждый сопровождается пояснением, почему на самом деле ему не стоит следовать. Всё будет одновременно и в... |
01.06.2023 | Три очень практичные фичи C++23 | C++23 — это текущая рабочая версия стандарта C++. На момент написания статьи туда пока не было включено ни одной крупной фичи, но ряд небольших нововведений, а также множество отчетов о дефектах уже утверждены в стандарте. Вы можете посмотр... |
24.05.2023 | На грани между exceptions и std::expected | Посмотрев на новый тип из грядущего стандарта под названием std::expected я пришел к интересному на мой взгляд мнению, что можно немного переосмыслить его суть и сделать несколько ближе к исключениям.
В данной статье хочу немного рассказать... |
22.05.2023 | Пишем на Python как на Rust | Я начал программировать на Rust несколько лет назад, и это постепенно изменило мой подход к разработке программ на других языках программирования, особенно на Python. До того, как я начал использовать Rust, я обычно писал код на Python очен... |
05.05.2023 | Реализация генераторов в языке программирования Ü | Некоторое время назад я добавил в свой язык программирования Ü такой функционал, как генераторы. В этой статье я хочу поведать, как это было сделано и зачем.
Данная статья будет полезна как интересующимся компиляторостроением, так и тем, ко... |
02.05.2023 | Красивый двоичный поиск без ветвления | Недавно я прочитал пост Алекса Мускара Beautiful Binary Search in D. В нём описывается алгоритм двоичного поиска под названием «алгоритм Шора». Я никогда не слышал о нём и его невозможно загуглить, но увидев алгоритм, я думал только об одно... |
23.03.2023 | Алгебра int о которой не говорят | Да, тайтл кликбейтный, но тема алгебраических свойств integer'а и float'а, действительно, не часто освещается в литературе и интернетах, однако эти знания углубляют понимание реализации компьютерной арифметики и применимы на практике.
Толчк... |