home.social

#пользовательские_типы — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #пользовательские_типы, aggregated by home.social.

  1. Форматируем строку по-человечески: C++ и его <format>

    Когда-то давным-давно (то есть до C++20) мы форматировали вывод либо по-старинке через printf , либо используя громоздкие стримы ввода-вывода из <iostream> . Оба подхода, мягко говоря, не очень. printf работал шустро и лаконично, но требовал строгого соответствия типов, забудешь правильный %d или %s в формате, и получишь неопределённое поведение вплоть до падения программы. Компиляторы иногда предупреждают о несоответствиях, но полностью проблему не решают (особенно если форматируемая строка не литерал). Кроме того, printf не умеет выводить пользовательские классы, только примитивы. Сейчас ситуация изменилась. В C++20 завезли библиотеку <format> , современный подход к форматированию строк, сочетающий лаконичность printf с безопасностью iostream . Инструмент называется std::format и объявлен в заголовке <format> . По сути, это адаптация популярной библиотеки fmt.

    habr.com/ru/companies/otus/art

    #C++ #форматирование_строк #C++20 #безопасность_типов #производительность #многопоточность #пользовательские_типы #вывод_данных