Хотел написать продолжение к статье Что почитать игровому программисту? про использование С++ в игровых движках, но размышления свернули куда-то не туда.
Рубрика «С++»
Каков C++ в gamedev’e?
2024-02-25 в 20:32, admin, рубрики: Gamedev, разработка, разработка игр, С++, управление проектамиОптимизируя неоптимизируемое: ускорение компиляции C++
2024-01-12 в 13:00, admin, рубрики: fmt, ruvds_перевод, stdio, компиляция, оптимизация, С++, Си, стандартные библиотекиВ этой статье речь пойдёт о повышении скорости компиляции библиотеки {fmt} до уровня библиотеки ввода-вывода Cи stdio.
Дня начала немного теории. {fmt} – это популярная открытая библиотека С++, представляющая более эффективную альтернативу С++ библиотеке iostreams и библиотеке Си stdio. Последнюю она обошла по целому ряду аспектов:
- Безопасность типов с проверками форматирующих строк во время компиляции. Эти проверки включены по умолчанию начиная с С++ 20, и присутствуют в качестве дополнения для С++ 14/17. Форматирующие строки среды выполнения в {fmt} также оказываются безопасными, чего невозможно достичь в
printf
. - Расширяемость. Определяемый пользователем тип можно сделать форматируемым. При этом большинство типов стандартных библиотек, например, контейнеры и пакеты для обработки даты и времени, предлагают возможность форматирования изначально.
- Производительность. {fmt} намного быстрее любой распространённой реализации
printf
, порой на несколько порядков (например, в форматировании чисел с плавающей запятой). - Возможность переноса поддержки Unicode.
Тем не менее одной из областей, в которой stdio по-прежнему опережала {fmt}, являлось время компиляции.Читать полностью »
Первые новинки C++26: итоги летней встречи ISO
2023-08-17 в 10:24, admin, рубрики: c++, c++26, constexpr, file, float, floating point, function, functions, hazard pointers, iso, native api, numeric, rcu, span, Программирование, С++, с++26На недавней встрече комитет C++ активно взялся за C++26. Уже есть первые новинки, которые нас будут ждать в готовящемся стандарте C++:
- улучшенный
static_assert
, - переменная
_
, - оптимизация и улучшение для
std::to_string
, - Hazard Pointer,
- Read-Copy-Update (так же известное как RCU),
native_handle()
,- целая вереница классов
*function*
, - множество доработок по
constexpr
, std::submdspan
,- и прочие приятные мелочи.
Подводные камни С++. Решаем загадки неопределённого поведения, ч. 1
2023-06-28 в 9:58, admin, рубрики: C, c++, compiler, UB, undefined, Unspecified, Блог компании МойОфис, Компиляторы, мойофис, С++, СофтИзучение и понимание неопределённого поведения — важный шаг для разработчика C++, поскольку undefined behavior бывает источником серьёзных ошибок и проблем в программах. UB может проявляться в разных аспектах языка, включая операции с памятью, многопоточность, арифметические вычисления, работу с указателями и так далее.
userver — что мы узнали за полгода в open-source
2023-05-24 в 11:38, admin, рубрики: c++, framework, microserver, Microservices, open source, opensource projects, opensourced, userver, Блог компании Яндекс, Проектирование и рефакторинг, С++, управление разработкой
Прошло больше полугода с момента выхода фреймворка для C++ 🐙 userver в open-source. За это время мы многое узнали, на многом настрадались, а главное — получили много приятных сюрпризов.
И мы решили об этом написать. Рассказ будет полезен тем, кто ведёт или планирует вести свой open-source проект или занимается контрибьютами. Остальным будет интересно почитать про чужое набивание шишек и что вообще open-source даёт проекту.
Читать полностью »
C++23 — финал, C++26 — начало
2023-02-20 в 9:00, admin, рубрики: C, c++, c++23, c++26, c23, compilers, exception, exception handling, iso, ranges, stacktrace, standard library, Блог компании Яндекс, Компиляторы, Программирование, С++, с++23, с++26, с23С момента моей прошлой публикации состоялось уже две встречи международного комитета по стандартизации C++.
Комитет занимался полировкой C++23:
static operator[]
;static constexpr
вconstexpr
-функциях;- безопасный range-based for;
- взаимодействие
std::print
с другими консольными выводами; - монадический интерфейс для
std::expected
; static_assert(false)
и прочее.
И прорабатывал новые фичи C++26:
std::get
иstd::tuple_size
для агрегатов;#embed
;- получение
std::stacktrace
из исключений; - stackful-корутины.
Точка, точка… запятая?
2023-01-06 в 9:45, admin, рубрики: l10n, Локализация ПО, Локализация продуктов, Программирование, С++Программисты пишут программы, которые потом могут использоваться в разных странах с разными стандартами и традициями, поэтому им приходиться обращать внимание на такие детали, которые в обычной жизни не замечаются в силу своей очевидности.
Вот, например, у меня на компьютере сегодняшняя дата пишется так — 06.01.2023, а на одном из моих серверов в уголке экрана светится 01/06/23. Это американский формат, и я каждый раз мучительно вспоминаю, 01/06 это первое июня или всё таки шестое января.
Ещё одно национальное отличие — символ отделения целой и дробной части в числах. В России по традиции и в соответствии со стандартами надо отделять дробную часть запятой (Пи = 3,14), а американцы (и вслед за ними программисты) используют десятичную точку (Pi = 3.14). Из-за этого различия иногда случаются разные казусы.
Превью профессии «говорящий с нейросетями»
2022-12-04 в 14:26, admin, рубрики: C, c++, data engineering, будущее, будущее наступило, нейросеть, ненормальное программирование, Программирование, С++Все уже слышали, что openAI выпустили в свет свою новую нейросеть-асистента, так что я решил попробовать на что она способна и описать свой опыт взаимодействия с этим.. Этой... Сущностью.
Разговор будет вестись как с человеком в вежливой форме, так как оказалось, что нейросеть очень хорошо запоминает = )
Начнём с чего-то простого, попросим сгенерировать на языке CMake простую программу
Как мы баг в PVS-Studio искали или 278 Гигабайтов логов
2022-10-28 в 12:39, admin, рубрики: c++, pvs, pvs-studio, static analysis, support, анализ кода, баги, Блог компании PVS-Studio, поддержка, С++, статический анализПредлагаем вашему вниманию интересную историю о поиске бага внутри анализатора PVS-Studio. Да, мы тоже допускаем ошибки, но мы готовы засучить рукава и залезть в самую глубину "кроличьей норы".
Небольшое предисловие
Наш коллега уже рассказывал про нашу техническую поддержку. Но всегда интересно послушать какие-то истории, и они у нас есть.
Если хочется программистской жести, то можете сразу переходить к следующему разделу. Если же хочется в целом познакомиться, как мы работаем, то продолжайте читать :). Также вы можете посмотреть юмористический доклад о поддержке С++ программистов.Читать полностью »