IMPORTANT NOTICE: EVENT CANCELLED
- Due to the current situation with the COVID-19 we had initially decided to reschedule using std::cpp 2020 until October 2020.
- However, given the continued situation we finally decided to cancel the event.
09:00 – 09:30
09:30 – 10:30
Combining C++17 Features – Nicolai Josutis (Germany)
C++17 is a remarkable collection of many features both in the core language and the library. But the real power comes by using them together. And after 3 years of experience, we know enough to give good examples and advice.
This talk will show some code examples combining various C++17 features. From this, you will get an idea of how powerfull C++17 really is.
10:40 – 11:20
Serverless & C++ in AWS – Javier Ramirez (Amazon Web Services, Spain)
Developing the serverless idea, the cloud way and the C++ Lambda functions. How to take advantage from the serverless architecture using C++. Flexible scaling. Automated high availability.
11:30 – 12:00
12:00 – 12:40
The state of the /*union*/ variant – Odin Holmes (Germany)
12:50 – 13:10
Enterprise C++ toolchain or why is it hard – Seraphime Kirkovski (VMWare, Bulgaria)
Reproducible builds are an essential topic for any commercial software vendor. The requirements for assuring those make organizations take architectural decisions that impact deeply the future of their products for years. This is an exploration in what it takes to design, create and maintain a complete C++ toolchain without breaking the back of the organization with legacy.
13:30 – 15:00
15:00 – 15:40
Ranges 102 – Joaquin M. López (Spain)
C++20 Ranges have arrived in town! Come with us on a walktrough of this new addition to the standard and learn how to use ranges, what their underpinning concepts are, what’s so good about them and how you can begin using them now even before C++20-compliant compilers ship in. As a glimpse of what’s ahead, we’ll finish touching upon some new developments like coroutines, executors and sender/receivers, which interact with ranges in exciting and beautiful ways.
15:50 – 16:10
Packaging and redistributing binaries built with C++ modules – Diego Rodríguez Losada (Conan/JFrog)There are a few misconceptions about C++ modules, how they affect sharing code, specifically sharing and reusing binaries. Though C++ modules is a major and very expected C++20 feature, and they will influence how we write and build C++ code, the reality is that distributing binaries will probably not change much.This talk will try to answer some questions about those binaries:
The talk will conclude with an example of binary reuse of a C++ modules library with Conan package manager.
- What are the artifacts that will be generated by C++ modules? How can be redistributed?
- Is the ABI improved with C++ modules?
- Are the “.bmi” files redistributable? Are they multi-platform and multi-compiler?
- Will be package management in C++ easier or more standard with modules?
16:20 – 17:00
Specifiers and qualifiers – Mikhail Matrosov (Align Technology, Russia)In C++98 we had const, volatile, static, extern and inline. In C++11 thread_local and constexpr were added. In C++17 — inline variables. In C++20 — consteval and constinit. But have you ever wondered what is a static inline thread_local constexpr const volatile variable?In this talk, I will try to sort out all this variety of keywords. We will recall linkage and storage duration, declaration and definition. Examine the connection between extern and inline, static and constexpr. Realize how it took almost 20 years to learn how to declare constants. Our findings will be summarized in a helpful table and a couple of flow-charts.
17:00 – 17:30
17:30 – 17:50
The Preprocessor Hampers Your Static Analysis Tooling – Will Modules Help? – Thomas Corbat (HSR, Switzerland)
Modern development environments rely on static analysis of the programming language at hand to provide many useful features ranging from syntax highlighting to automated refactorings. The translation model of C++ consists of multiple phases. In one of them the preprocessor executes all preprocessing directives, which basically is a very primitive transformation of the source code. This translation step incurs a semantic gap between the source code in the files and the resulting C++ source code. Modules, introduced in C++20, reduces this problem, but cannot resolve it completely. I will present a tool developer’s perspective on this issue and the challenges it creates for static analysis and automated code transformation tools.
18:00 – 18:40
Squaring the circle: value oriented design in an object oriented system – JuanPe Bolívar (Germany)
In this talk, we will present a new open-source library of cursors. Cursors are inspired by functional lenses and reactive streams to provide composable and modular facades to “single atom” value storages. We will see how this can be used to navigate the tension between object-oriented and value-oriented design, and build an example interactive application using Qt and QML against a value-based data-model.
18:45 – 19:00Closing
With the cooperation of: