Доклады конференции С++ Russia 2019 Piter

Eric Niebler Facebook
Eric Niebler
День 2 / 11:00  / Зал 1 / EN / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

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.

Sean Parent Adobe
Sean Parent
День 1 / 10:30  / Зал 1 / EN / Для практикующих инженеров

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.

Антон Полухин Яндекс.Такси
Антон Полухин
День 1 / 18:30  / Зал 1 / RU / Для практикующих инженеров

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

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

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

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.

Adi Shavit Consultant
Adi Shavit
День 1 / 17:00  / Зал 1 / EN / Для практикующих инженеров

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.

Guy Davidson Creative Assembly
Guy Davidson
Creative Assembly 
День 1 / 13:45  / Зал 2 / EN / Академический доклад

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.

Bryce Adelstein Lelbach NVIDIA
Bryce Adelstein Lelbach
День 2 / 16:00  / Зал 1 / EN / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

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.

Максим Хижинский VAS Experts
Максим Хижинский
VAS Experts 
День 1 / 15:30  / Зал 1 / RU / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

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

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

Михаил Матросов Align Technology
Михаил Матросов
Align Technology 
День 2 / 14:15  / Зал 3 / RU / Для практикующих инженеров

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

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

Александр Бычук Лаборатория Касперского
Александр Бычук
Лаборатория Касперского 
День 1 / 17:00  / Зал 3 / RU / Для практикующих инженеров

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

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

Карина Дорожкина Лаборатория Касперского
Карина Дорожкина
Лаборатория Касперского 
День 1 / 15:30  / Зал 3 / RU / Для практикующих инженеров

BareMetal C++

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

Hana Dusíková AVAST
Hana Dusíková
День 1 / 12:00  / Зал 1 / EN / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

A state of сompile time regular expressions

Learn how to parse a regular expression pattern in compile-time and generate matcher with finite automaton.

Андрей Карпов PVS-Studio
Андрей Карпов
День 1 / 18:30  / Зал 3 / RU / Введение в технологию

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

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

Николай Белобородов Variti
Николай Белобородов
День 1 / 17:00  / Зал 2 / RU / Для практикующих инженеров

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

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

Rainer Grimm Modernes C++
Rainer Grimm
Modernes C++ 
День 2 / 17:30  / Зал 1 / EN / Для практикующих инженеров

The Big Four of C++20

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

Ivan Čukić KDE
Ivan Čukić
День 2 / 18:50  / Зал 1 / EN / Для практикующих инженеров

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.

Arno Schoedl think-cell
Arno Schoedl
День 1 / 12:00  / Зал 2 / EN / Для практикующих инженеров

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.

Дмитрий Кожевников JetBrains
Дмитрий Кожевников
День 2 / 12:30  / Зал 1 / RU / Для практикующих инженеров

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

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

Timur Doumler audio++
Timur Doumler
День 1 / 15:30  / Зал 2 / EN / Для практикующих инженеров

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.

Тимофей Лавренюк KeepSolid
Тимофей Лавренюк
День 2 / 16:00  / Зал 3 / RU / Готовьтесь, будет подгорать

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

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

Ashot Vardanian UNUM
Ashot Vardanian
День 2 / 12:30  / Зал 3 / EN / Для практикующих инженеров

Dive into the general-purpose GPU programming

Comparing OpenCL & CUDA with high-level C++ libraries and compiler toolchains for heterogeneus computing.

Роман Русяев Samsung
Роман Русяев
День 1 / 13:45  / Зал 1 / RU / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

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

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

Александр Ганюхин MERA
Александр Ганюхин
День 2 / 16:00  / Зал 2 / RU / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

Сериализация объектов с блэкджеком и метапрограммированием

В своем докладе Александр опишет подход к полуавтоматической сериализации через геттеры при помощи метапрограммирования.

Денис Панин NVIDIA
Денис Панин
День 1 / 13:45  / Зал 3 / RU / Для практикующих инженеров

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

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

Juan Pedro Bolívar Puente Independent consultant
Juan Pedro Bolívar Puente
Independent consultant 
День 1 / 18:30  / Зал 2 / EN / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

Squaring the circle: value-oriented design in an object-oriented system

Learn about how cursors and reactive lenses can help designing your code around value-semantics and functions, modernizing legacy code-bases and UI's otherwise written in a referential, object-oriented style.

Кирилл Тихонов DINS
Кирилл Тихонов
День 1 / 12:00  / Зал 3 / RU / Введение в технологию

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

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

Александр Масленников Intel
Александр Масленников
День 2 / 17:30  / Зал 3 / RU / Введение в технологию

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

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

Björn Fahller Net Insight
Björn Fahller
Net Insight 
День 2 / 14:15  / Зал 2 / EN / Для практикующих инженеров

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.

Павел Новиков Align Technology
Павел Новиков
Align Technology 
День 2 / 12:30  / Зал 2 / RU / Для практикующих инженеров

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

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

Андрей Давыдов JetBrains
Андрей Давыдов
День 2 / 14:15  / Зал 1 / RU / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

Модули: Изменения в core language

Доклад про модули в C++ и их влияние на core language.