C++ Russia
Saint-Petersburg, Russia
April 19-21 2018

27
great speakers
1250
minutes
for experienced
developers

About

C++ Russia with bliny and matryoshkas! With great guests from around the world for two days. The conference is for experienced developers!

Location: Saint Petersburg, Park Inn Pribaltiyskaya Hotel.

So far we held conferences in several cities in Russia: Moscow, Saint-Petersburg, Yekaterinburg, Nizhny Novgorod, Kazan, Tomsk and Saratov. We invite speakers from variety of cities and from other countries as well.

Keynote speaker will be Jon Kalb, the C++ developer with 25-years of expirience.
During that time he was programming with C++ for Amazon, Apple, Dow Chemical, Intuit, Lotus, Microsoft, Netscape, Sun, Yahoo!, and a couple of companies you've never heard about. Jon is the chairman of CppCon and the author of the "C++ Today: The Beast is Back" book.

Talks

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

20/04/18
Track B
13:45 - 14:45
Mikhail Matrosov
Mikhail Matrosov
Versatile C++ applied

In C++ you can solve a single task in a multiple ways. We will pick an actual task from production, and investigate how it can be solved with a number of tools that C++ provides: STL containers, boost.range, C++20 ranges, coroutines. We will compare API constraints and performance of different solutions, and how they can be easily converted from one to another if the code is well-structured. During the way we explore applications of some useful C++17 features like constexpr if, selection statements with initializer, std::not_fn, etc. Special attention will be payed to my favorite topic - standard algorithms.

Slides in pptx

20/04/18
Track A
13:45 - 14:45
Jonathan Boccara
Jonathan Boccara
105 STL Algorithms in Less Than an Hour

We are all aware that we should know the STL algorithms. Including them in our designs allows us to make our code more expressive and more robust. And sometimes, in a spectacular way.

But do you know your STL algorithms?

In this talk, you'll see the 105 algorithms that the STL currently has, including those added in C++11 and C++17. But more than just a listing, the point of this talk is to present the different groups of algorithms, the patterns they form in the STL, and how the algorithms relate together.

This kind of big picture is the best way I know to actually remember them all, and constitute a toolbox chock-full of ways to make our code more expressive and more robust.

Slides in pdf

20/04/18
Track A
12:45 - 13:45
Arno Schödl
Arno Schödl
From Iterators To Ranges — The Upcoming Evolution Of the Standard Library

Pairs of iterators are ubiquitous throughout the C++ library. It is generally accepted that combining such a pair into a single entity usually termed Range delivers more concise and readable code. Defining the precise semantics of such Range concept proves surprisingly tricky, however. Theoretical considerations conflict with practical ones. Some design goals are mutually incompatible altogether.

21/04/18
Track A
17:00 - 18:00
Simon Brand
Simon Brand
Modern C++ Parallelism from CPU to GPU

Parallel programming can be used to take advantage of multi-core and heterogeneous architectures and can significantly increase the performance of software. Modern C++ has gone a long way to making parallel programming easier and more accessible; providing both high-level and low-level abstractions. C++17 takes this further by providing high level parallel algorithms, and much more is expected in C++20. This talk will give an overview of the current parallelism utilities available, and look to the future of how GPUs and heterogeneous systems can be supported through new standard library features and other standards like SYCL.

Slides in pdf

20/04/18
Track A
18:00 - 19:00
Andrei Alexandrescu
Andrei Alexandrescu
Fastware

Optimization — making code faster — is an essential ingredient of modern computing. The speed of light is limited, so we're unable to increase computer clock speed anymore; in other news, the matter is composed of discrete atoms so we can't make circuits much smaller than they already are. That means more speed for essential tasks — ranging from speech recognition to self-driving cars to General Artificial Intelligence — is to be found in people's minds.

This talk discusses, with simple examples, a few algorithm design principles that can be applied consistently to improve, or sometimes entirely redesign, algorithms for better performance.

Schedule

Tickets

Great talks, useful workshops.
We also offer an option to attend us online.

Conference ticket

Two days tickets for main program 20-21 April

Workshop

One day intensive course: a lot of practise, personal work. A laptop is required.

Online

You can watch any talk online. The videos will remain available for two months

Social event

A dinner with speakers and some other attendees, 20 April, 8 p.m.

Buy ticket

Buy tickets

Platinum sponsor

Gold sponsors

Silver sponsors

Community sponsors

Contacts

Location: Saint Petersburg, Park Inn Pribaltiyskaya Hotel.

If you have any questions,
please ask them via phone or email

+7 (905) 292-77-13