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

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

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 D
16:00 - 17:00
Herb Sutter
Herb Sutter
New in C++20: The spaceship operator (operator<=>)

The new operator<=> was recently adopted as a language feature for C++20. In this talk, the designer and author of the <=> proposal gives an overview of the feature, discusses its motivation and design, and walks through examples of how to use it. We give particular emphasis to how the feature makes C++ code cleaner to write and read, faster by avoiding redundant work, and more robust by avoiding several important but subtle pitfalls in the more brittle code we previously had to write by hand without this feature.

21/04/18
Track A
10:00 - 12:00
Daveed Vandevoorde
Daveed Vandevoorde
Reflective Metaprogramming in C++

Some time ago, the C++ standardization committee created a subgroup “SG-7” to explore how to add reflection capabilities to the language. More recently, that group has added “metaprogramming” to its plate and made some significant decisions regarding the shape of the eventual solution. In this talk we will look at the past that brought us here and examine a possible path for C++’s first-class support of “reflective metaprogramming”.

Slides in pdf

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 B
12:45 - 13:45
Borislav Stanimirov
Borislav Stanimirov
DynaMix: A New Take on Polymorphism

Software with very complex business logic, such as games, CAD systems, and enterprise systems, often needs to compose and modify objects at runtime - for example to add or override a method in an existing object. Standard C++ has rigid types which are defined at compile time and make this hard. On the other hand languages with dynamic types like lua, Python, and JavaScript make this very easy. Therefore, to keep the code readable and maintainable, and accomplish complex business logic requirements, many projects use such languages alongside C++. Some drawbacks of this approach include the added complexity in a language binding layer, the performance loss from using an interpreted language, and the inevitable code duplication for many small utility functionalities.

DynaMix is a library which attempts to remove, or at least greatly reduce, the need for a separate scripting language by allowing the users to compose and modify polymorphic objects at runtime in C++. This talk will elaborate on this problem and introduce the library and its key features to potential users or people who might benefit form the approach with an annotated example and a small demo.

Slides

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