• Смотреть запись
    Доклад

    Generators, coroutines and other brain-unrolling sweetness

    We'll see how coroutines allow for cleaner code, easier abstraction and genericity, composition and avoiding callbacks and inversion of control.

  • Смотреть запись
    Доклад

    Modern techniques for keeping your code dry

    Björn will show modern C++ techniques enabling you to write your own zero-cost abstractions that help getting rid of the patterns that keep repeating in your code.

  • Смотреть запись
    Доклад

    Исключения C++ через призму компиляторных оптимизаций

    Доклад Романа продемонстрирует, когда делать сборку своего приложения с -fno-exceptions имеет смысл, а когда можно использовать C++ исключений, зная, что код не потерял в производительности.

  • Смотреть запись
    Доклад

    C++ трюки из Такси

    Нетиповое и эффективное решение типовых задач:

    • Паттерн Pimpl — но без динамических аллокаций;
    • Быстрое логирование пользовательских типов — но, по возможности, без std::ostream и локалей;
    • Конвертация из JSON/XML/YAML/... в пользовательские типы — но c ADL и переиспользованием кода (почти что перегрузка функций по возвращаемому значению).
  • Смотреть запись
    Доклад

    Под капотом стандартной библиотеки C++

    Пара вещей о реализации стандартной библиотеки С++, о которых вы, возможно, захотите узнать. Обсудим детали реализации и как использование типов и алгоритмов из стандартной библиотеки может повлиять на производительность вашего приложения.

  • Смотреть запись
    Доклад

    Преждевременная оптимизация — зло! Да здравствует преждевременная оптимизация!

    На базе своего собственного опыта разработки статического анализатора кода Андрей и его команда пришли к выводу, что от неуклонной деградации производительности нас может спасти только преждевременная оптимизация всего, что можно. Спикер хочет поделиться своими соображениями и применяемыми его командой приёмами.

  • Смотреть запись
    Доклад

    Автоматизируй это

    Как легко настроить инфраструктуру вокруг проекта и обеспечить безболезненное обновление сервисов, расскажет Кирилл Тихонов.

  • Смотреть запись
    Доклад

    The C++20 synchronization library

    C++20 introduces a range of number of new synchronization primitives designed for the modern era; in this talk, you'll learn how to use these new tools to write scalable C++ software.

  • Смотреть запись
    Доклад

    Как мы начали использовать vcpkg

    Доклад будет посвящен vcpkg, его плюсам и фатальным недостаткам. Мы эти недостатки разберем и починим, и наша система на vcpkg будет более конкурентоспособна, чем Conan.

  • Смотреть запись
    Доклад

    Алгоритмическая и микроархитектурная оптимизация C++ приложений

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

  • Смотреть запись
    Доклад

    The C++ rvalue lifetime disaster

    Arno will talk about the main problems surrounding rvalue references and suggest the alternate solution with the help of the library-only approach.

  • Смотреть запись
    Доклад

    Compile-time type tagging

    We will use and explain many new C++ features like fold expressions, concepts, type lists and index sequences, and the code will extensively use move semantics to generate a cleaner assembly code for type instantiation.

  • Смотреть запись
    Доклад

    Teaching geometry to C++

    With the linear algebra proposal making its way through the C++ standard committee, the authors are now considering teaching analytical geometry to C++. This talk will tell you about the progress to date.

  • Смотреть запись
    Доклад

    Применение slab-аллокаторов в высоконагруженных сетевых приложениях

    Николай расскажет о том, как он и его команда решили проблему фрагментации памяти, и с какими ограничениями им пришлось столкнуться в процессе.

  • Смотреть запись
    Доклад

    Dart, как возможность перенести C++ приложение в web

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

  • Смотреть запись
    Доклад

    Жилье комфорт-класса для акторов и хендлеров

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

  • Смотреть запись
    Доклад

    Модули в С++20 — правда или вымысел?

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

  • Смотреть запись
    Доклад

    BareMetal C++

    Карина покажет и расскажет про особенности написания и сборки C++ кода при ограниченных ресурсах и отсутствии компилятора.

  • Смотреть запись
    Доклад

    Спецификаторы, квалификаторы и шаблоны

    В С++ не так-то просто объявить переменную или функцию. Когда для неё стоит указывать static и inline? const и constexpr? Что насчёт consteval и constinit? Как всё это взаимодействует с шаблонами? В этом докладе Михаил попытается разложить по полочкам всё это многообразие.

  • Смотреть запись
    Доклад

    С++ Enterprise Edition — брокеры сообщений

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

  • Смотреть запись
    Доклад

    Hardening the C++ standard template library

    The C++ standard library is used by all C++ programs; it needs to be as robust as possible. Marshall will talk about the techniques used by libc++ to ensure robustness. He will cover debug mode, test suites, static analysis, dynamic analysis, code coverage tools, and fuzzing.

  • Смотреть запись
    Доклад

    Better code: Relationships

    A look at common ways data and code are connected in an application, how those relationships are typically represented, and the problems caused by the use and misuse of these paradigms. Then we'll look at ways to model these relationships in C++ and use them to build correct applications.

  • Смотреть запись
    Доклад

    A unifying abstraction for async in C++

    Eric Niebler digs into the Standard Committee's search for the basis operations that underpin all asynchronous computation. He will discuss why futures and promises are slow, what an executor is, what callbacks and coroutines have in common, and how the "Task" abstraction — under active R&D at Facebook — might do for async algorithms what the Iterator abstraction did for synchronous ones.

  • Смотреть запись
    Доклад

    The Big Four of C++20

    How C++20 will change the way we program modern C++.

  • Смотреть запись
    Доклад

    Type punning in modern C++

    This talk is a comprehensive overview of type punning techniques, including new ones introduced in C++20. We will discuss when and how they can be used safely without causing undefined behaviour, what C++ does and does not allow you to do (and why), existing holes in the C++ language, and how to fix them. In the process, we will cover important C++ concepts such as object lifetime, object representation, and aliasing rules.