Конференция C++ Russia
Санкт-Петербург
19-21 апреля 2018

27
лучших докладчиков
1250
минут информации
для опытных
разработчиков

Конференция «C++ Russia» с блинами и матрёшками! Как всегда, лучшие докладчики
со всей страны на два дня. Конференция ориентирована на опытных разработчиков, никаких вводных лекций!

Место проведения: Санкт-Петербург, ул. Кораблестроителей, 14, гостиница Прибалтийская.

В течение года сообщество проводит встречи в разных городах России: Москве, Санкт-Петербурге, Новосибирске, Екатеринбурге, Нижнем Новгороде, Саратове.
На встречах выступают докладчики из разных городов и стран.

Открывать конференцию будет Jon Kalb, разработчик с 25-летним стажем
В течение этого времени успел поработать в Amazon, Microsoft, Netscape,
Yahoo и других компаниях. Jon -- организатор конференции CppCon. Автор книги
C++ Today: The Beast is Back.

Доклады

21/04/18
Track C
16:00 - 17:00
Дмитрий Кожевников
Дмитрий Кожевников
Подводные камни CMake и где они обитают

Система сборки CMake постепенно становится стандартом де-факто для кроссплатформенного программирования на C++. Однако часто она подвергается справедливой критике, в том числе за неудобный скриптовый язык, устаревшую документацию и за то, что одни и те же задачи в ней можно выполнять разными способами, при этом понять, какой из них более правильный в конкретной ситуации, бывает довольно сложно. Я расскажу:

  • частые популярные анти-паттерны и чем они плохи,
  • на каких уровнях абстрации работает CMake, и когда они "протекают",
  • что такое "Modern CMake" и в чем его преимущества,
  • как локализовывать и отлаживать проблемы в CMake-скриптах (в том числе довольно экзотическими средствами).

Slides in pdf

20/04/18
Track D
12:45 - 13:45
Фёдор Короткий
Фёдор Короткий
Память – идеальная абстракция
int* ptr = new int;
*ptr = 42;
delete ptr;

Что на самом деле происходит, когда выполняются эти 3 строчки кода? Мы заглянем внутрь аллокатора памяти, операционной системы и современного железа чтобы дать исчерпывающий ответ на этот вопрос.

Slides in pdf

21/04/18
Track A
13:45 - 14:45
Dietmar Kühl
Dietmar Kühl
Concept Based Testing

With concepts being added to the next revision of C++ it is expected that new concepts get defined. Each concept defines a set of operations used by generic code. One such use could be a generic test verifying that all parts of a concept are defined and checking generic interactions between a concept’s operations. Ideally, such a test even works with classes only partially modelling a concept to guide the implementation of classes.

This presentation doesn’t use the actual concept extensions but shows how generic tests can be created using features of C++17. For the generic tests the detection idiom and constexpr if are used to determine availability of required operations and gracefully dealing with the abseence of operations. The generic tests should be able to cover basics of classes modelling a concept. Obviously, specific behaviour for classes will still require corresponding tests.

Attendees are expected to be familiar basic C++. However, deep knowledge of template meta programming is not needed.

Slides in pdf

21/04/18
Track D
16:00 - 17:00
Дмитрий Соколов
Дмитрий Соколов
Кодогенерация как рефлексия для бедных

Рефлексия часто нужна для обобщения алгоритмов сериализации. Реализация всевозможных протоколов, работа с базами данных. Для решения подобных задач нами был написан компилятор homebrew IDL для генерации C++ структур и библиотека для взаимодействия с полученным результатом. Protobuf с педалями и стоило ли оно того.

20/04/18
Track A
17:00 - 18:00
Victor Ciura
Victor Ciura
Enough string_view to hang ourselves

Wouldn’t it be nice if we had a standard C++ type to represent strings ? Oh, wait... we do: std::string. Wouldn’t it be nice if we could use that standard type throughout our whole application/project ? Well… we can’t ! Unless we’re writing a console app or a service. But, if we’re writing an app with GUI or interacting with modern OS APIs, chances are that we’ll need to deal with at least one other non-standard C++ string type. Depending on the platform and project, it may be CString from MFC or ATL, Platform::String from WinRT, QString from Qt, wxString from wxWidgets, etc. Oh, let’s not forget our old friend const char*, better yet const wchar_t* for the C family of APIs…

So we ended up with two string types in our codebase. OK, that’s manageable: we stick with std::string for all platform independent code and convert back-and-forth to the other XString when interacting with system APIs or GUI code. We’ll make some unnecessary copies when crossing this bridge and we’ll end up with some funny looking functions juggling two types of strings; but that’s glue code, anyway… right?

It’s a good plan... until our project grows and we accumulate lots of string utilities and algorithms. Do we restrict those algorithmic goodies to std::string ? Do we fallback on the common denominator const char* and lose the type/memory safety of our C++ type ? Is C++17 std::string_view the answer to all our string problems ?

We’ll try to explore our options, together, with a case study on a 15 year old Windows application: Advanced Installer (www.advancedinstaller.com) - an actively developed C++ project, modernized to C++17, thanks to clang-tidy and “Clang Power Tools” (www.clangpowertools.com).

Slides in pdf

20/04/18
Track D
13:45 - 14:45
Алексей Салмин
Алексей Салмин
Memory Management Tips & Tricks

В 2017 году вопрос выбора аллокатора в C++ не теряет актуальности. В стандарт добавили новый способ выбрать локальный аллокатор для контейнеров (std::pmr), глобальные tcmalloc и jemalloc продолжают развиваться, как и интерфейсы ядра, на которые они опираются. Данный доклад посвящен “нижнему этажу” этой конструкции: особенностям работы mmap и madvise в ядре Linux и влиянию этих особенностей на производительность аллокаторов.

Программа

Первый день конференции 19 апреля -- это день мастер-классов. Вы можете посетить один четыре мастер-классов на ваш выбор. Обратите внимание: два мастер-класса проходят на английском языке. Мастер-класс это практическое занятие под руководством опытного программиста. Для работы вам понадобится ноутбук, более подробные требования есть в описании каждого мастер-класса. На этот день продаётся отдельный билет.

20/04/18
track atrack btrack ctrack d
09:00 - 10:00 Регистрация
10:00 - 12:00 Jon KalbC++ Today: The Beast is Back
12:00 - 12:45 Кофе-брейк
12:45 - 13:45 Arno SchödlFrom Iterators To Ranges — The Upcoming Evolution Of the Standard Library Borislav StanimirovDynaMix: A New Take on Polymorphism Дмитрий БанщиковРазделяемые библиотеки без внешних зависимостей Фёдор КороткийПамять – идеальная абстракция
13:45 - 14:45 Jonathan Boccara105 STL Algorithms in Less Than an Hour Mikhail MatrosovVersatile C++ applied Сергей ВасильевСтатический анализ: ищем ошибки... и уязвимости? Алексей СалминMemory Management Tips & Tricks
14:45 - 16:00 Обед
16:00 - 17:00 Viktor KirilovInteractive C++ Compilation (REPL): The Lean Way Александр ГранинФункциональный подход к Software Transactional Memory Илья ШишковКак научить языку C++: опыт создания курсов на Coursera Herb SutterNew in C++20: The spaceship operator (operator<=>)
17:00 - 18:00 Victor CiuraEnough string_view to hang ourselves Вадим ВинникCollection Processing. Single essence, multiple manifestations Иван ПономарёвCrash репорты Android NDK Анастасия КазаковаОтладка кода на C++, без запуска и компиляции
18:00 - 19:00 Andrei AlexandrescuFastware

Билеты

В этом году наших слушателей ждут
полезные мастерклассы, а для тех, кто не может приехать на
конференцию, мы как всегда организовали онлайн трансляцию. Присоединяйтесь!

Как всегда действует студенческая программа.
Для получения скидки пишите на
students@cpp-russia.ru

Входной билет

Посещение основной программы конференции 20-21 апреля

Мастер-класс

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

Онлайн

Просмотр любого доклада. Записи докладов доступны в течение двух месяцев.

Ужин с докладчиками

Горячая пища и общение с докладчиками в неформальной обстановке. 20 апреля в 20.00

Купить билет

Перейтик заказу билетов

Platinum спонсор

Gold спонсоры

Silver спонсоры

Community спонсоры

Контакты

Место проведения: Санкт-Петербург, ул. Кораблестроителей, 14, гостиница Прибалтийская.

Если у Вас есть вопросы,
их можно задать по телефону или почте

+7 (905) 292-77-13