Reports from Minsk C ++ Conference CoreHard Spring 2018


On April 7 - 8, the CoreHard community held in Minsk the 8th CoreHard Spring 2018 international conference on the C ++ language and related hardcore technologies. The conference was attended by speakers from leading IT companies in Belarus, Russia, Ukraine, Germany and the Netherlands. They talked about their experiences in development and testing.

Now reports from the conference are freely available on YouTube and everyone can get acquainted with them. We thank the organizers of the conference.


Evgeny Okhotnikov. 25 years of C ++ history that passed before my eyes



The author of the report met C ++ in 1991, and since 1992, C ++ has been the main development language for the speaker. What happened to the language during this time? How and why did it become popular? How did stagnation in C ++ start? How did C ++ lose its popularity? Is there a place for C ++ in the modern world? Let's try to talk about it, based on 25 years of C ++ programming experience.

Sergey Solojentsev. Feature-component approach in game development



Let's talk about how the approaches to working with game objects in match 3 games have changed, and how we came to the current feature-component approach to creating changeable game objects. What are its advantages over the rest of the tried and tested approaches for creating tutorials, numerous modes, as well as code reuse.

Andrey Yakimov. Interception of functions under Windows in applications using C / C ++



We'll talk about the interception of functions in applications written in various languages ​​and technologies. The report will consider: basic concepts, areas of application, types of interception methods and their technical features, ready-made libraries.

Andrey Karpushin. C ++ for the web with Emscripten



In the report, the author talks about his practical experience of compiling and using C ++ on web pages, about what needs to be done to port an application to C ++ under the web, about the limitations associated with this, about integrating C ++ code with JavaScript and other web elements pages.

Vasily Nemkov. Kernel of multiulty multi-currency wallet Multy



3.5 blockchains in 2 megabytes: how, why and why. Features of the development of cross-platform solutions for the blockchain.

Alexander Markevich. From C ++ to Objective-C



In this report, the author tells that Obj-C / C ++ is an extension of existing C / C ++. There will also be considered features of the language, talked about memory management (retain / release vs. ARC vs. shared_ptr / unique_ptr), Swift, and why it is better or worse Obj-C / C ++.

Mikhail Matrosov. Multifaceted C ++ in practice



In C ++, there are many ways to solve the same problem. We will take the real problem from the author’s practice and explore a number of C ++ tools to solve it: STL containers, boost.range, C ++ 20 ranges, coroutines. We will compare solutions in terms of their interfaces and performance, and also see how one solution can be easily obtained from another if the code is properly organized. In the process, we will look at C ++ 17 features: constexpr if, selection statements with initializer, std :: not_fn, etc. Special attention will be paid to standard algorithms (my favorite topic).

Pavel Belikov. How Data Flow Analysis Works in a Static Code Analyzer



Data Flow Analysis (data flows) is a technology for analyzing the source code of programs, widely used in various development tools: compilers, linters, IDE. We will talk about it on the example of the development of a static analyzer. Consider the classification and various types of Data Flow analysis, related technologies that complement each other and the problems that arise during its development, and the surprises that C ++ presents to us when we try to analyze it. During the report, we will examine several errors found in real projects using this technology.

Alexander Zaitsev. C ++ code profiling tools



It happens that sometimes your application starts to perform long, seemingly everyday tasks and consume a large amount of RAM. And you, as a developer, have no idea why this is happening (but you are interested). In the course of the report we will talk about the means that can understand the reasons for the strange behavior of our programs. If you are not afraid of such words as Valgrind, gprof, gperftools and many others - welcome!

Alexander Chuprina. Setting up an environment for docker'a cross-compiling



How to quickly and easily set up / update environments for cross-compiling projects for different platforms (based on docker), how to quickly switch between them, how to use these building blocks to organize CI and testing (based on GitLab and Docker).

Alexey Tkachenko. C ++ code generation cross-platform



The report will consider the generation of code when compiling various language constructs, both simple and complex, on different platforms, both common x86 / x64, and those that receive less attention: ARM, AVR. There will also be examples for very exotic processors like PowerPC and even MicroBlaze. The focus will be not on data processing, but on comparing different code designs with instructions of target platforms.

Vadim Vinnik. Processing collections: a single essence and many manifestations



Today's programming is divided into many areas that are quite far from each other. Does conceptually single programming exist at all and what is this unity based on? Answers to these and other questions are given by the author of the report.

Nicolai Josuttis. Beware of C ++ 17



The devil is in the detail. This also applies to C ++ 17. We get you some cool things to do. When they may lead to surprises.

Discussions


Do not miss the discussions, which raised various topics on the discussion of the Rust and C ++ languages, as well as the answers to the questions of the C ++ members of the Standardization Committee.


Source: https://habr.com/ru/post/414467/


All Articles