3rd Edition Conference

Cpp Europe

25 Feb 2020Add To Calendar
Radisson Blu Hotel Bucharest, Bucharest, Romania

About Users 1 Reviews Exhibitors Photos Speakers 9 Travel Deals

WHY ATTEND? Join if you’re interested in learning more about the language and the technologies surrounding C++. Whether you’re building high performance applications, you have memory constraints or you’re working on very old codebases, there will be something for you to learn and try out when you’re going back to your project. WHO IS IT FOR? The conference is for anyone interested in learning more about C++, be it from speakers or peers. It’s also an environment where sharing experiences is highly encouraged. Whether you’re a senior developer, an architect, an expert, a consultant, or new to C++, you will find interesting sessions or conversations for you.


  • A healthy mix of well-known experts and local speakers
  • A panel discussion that will not be boring (hint: you will get involved if you have something to say
  • A social gathering, including a geek networking party at the end
  • Diversity of opinions and audience (from beginners to very experienced programmers, technical leads)
  • Conversations that matter to you


9:00 AM - 9:30 PM General Hours

Entry Fees

Paid Ticket Starts from 291 EUR View Details



10 - 50 Exhibitors Estimated Count

Category & Type

IT & Technology


25 Feb 2020 Interested

Frequency One-time

Official Links


Report Error
Claim this event


Logo Send Stall Book Request

Mozaic Works Romania

2 Total Events / 1 Upcoming Event
+ Add me as user

User Community [ Users who have shown interest for this Event ]

GoingMohamed Sehata

Mohamed Sehata

Alzokm at Alzokm

Alexandria, Romania


José Daniel Garcìa

José Daniel Garcìa

Associate Professor in Computer Architecture at the Computer Science and...
Clare Macrae

Clare Macrae

C++ Legacy Code Consultant
Alex Bolboaca

Alex Bolboaca

CTO, Trainer, Coach, Author at Mozaic Works
Augustin Popa

Augustin Popa

Program Manager on the Microsoft C++ team
Arno Schödl

Arno Schödl

Co-Founder and Technical Director of think-cell Software GmbH
Peter Hilton

Peter Hilton

Software developer, writer, speaker, trainer, and musician
Klaus Iglberger

Klaus Iglberger

C++ Trainer & Consultant

Schedule & Agenda

Tue, 25 Feb 05:45 AM - 06:30 AMClosing and departure to the Party
Tue, 25 Feb 09:00 AM - 09:15 AMRegistration Registration
Tue, 25 Feb 09:15 AM - 09:30 AMOpening Opening Ceremony
Tue, 25 Feb 09:30 AM - 10:30 AMC++ programming in a parallel world Keynote
Multi-cores are everywhere, from you servers and workstations to you phones.Since C++11 we have a standard way of expressing multi-threaded applications. That included both language and library additions allowing to express multiple threads of execution. That’s nice but how do I parallelize my code? How do I accelerate my algorithms? C++17 has a partial answer to those questions in the form of parallel algorithms. And there is more to come in this area.In this talk I will explore past and present of parallel programming in C++ as well as giving some insights of possible evolution for next decade C++.
Tue, 25 Feb 10:30 AM - 10:45 AMBreak Break
Tue, 25 Feb 10:45 AM - 11:30 AMRefactoring C++ legacy code through pure functions Session
Refactoring legacy code is an inherently difficult problem. Safe refactoring requires tests, but writing tests on code that doesn’t have them requires safe changes to the code. To solve this dilemma, I’ve been using the techniques described by Michael Feathers in his amazing book “Working Effectively With Legacy Code”. I believe now that I found another technique that takes advantage of pure functions and functional programming, a technique made even more interesting by the introduction of lambdas in C++. The technique consists of three steps:safe refactorings towards pure functionsdata-driven and property-based tests on pure functionsrefactoring from pure functions to object oriented code, if needed In this session, I will describe:The fundamental problem of legacy codeA quick intro to the standard technique for refactoring legacy codePure functions as a nominal format for programsRefactoring techniques towards pure functionsWriting tests on pure functionsRefactoring from pure functions to object-oriented code
Tue, 25 Feb 10:45 AM - 11:30 AMC++ libraries for daily use Session
The Standard library is a rich collection of functions and classes, most of them for general purpose, that help with various daily tasks C++ developers encounter. Yet, we are often required to resort to 3rd party libraries to solve common problems. In this talk, I will give a short walk through five libraries that you can use for solving common problems:fmt: a modern library for text formatting as alternative to printf and iostreamsloguru: a light-weight easy to use library for loggingnlohmannjson: a modern library for working with JSONLyra: a command line arguments parser for C++11 and beyondCatch2: a header-only test framework for unit-tests, TDD, and BDDFrom this talk, you will learn what are the most important features of these libraries so that you can start using them in your projects.
Tue, 25 Feb 11:30 AM - 11:45 AMBreak Break
Tue, 25 Feb 11:45 AM - 12:30 PMTools to Ease Cross-Platform C++ Development Session
Writing high-quality error-free C++ code is a challenging task, let alone when having to juggle multiple platforms at the same time! In this session we will be exploring the many challenges in cross-platform C++ development and how tools can help.What options do I have if my production environment is different than my dev-box? Can I be as productive when working with remote Linux machines? How can I efficiently build and debug CMake projects and how can I acquire open-source libraries? Come see what Visual Studio 2019, Visual Studio Code, CMake, WSL, Vcpkg and more have to offer to make your C++ development much easier.
Tue, 25 Feb 11:45 AM - 12:30 PMC++ Testing Techniques, Tips and Tricks Session
An assortment of practical patterns and techniques to make it easier to write effective automated tests of C++ code, both old and new.Clare will share some valuable techniques for easier handling of commonly troublesome testing scenarios. Whatever test framework you use, you will take away practical ideas to writer tests more easily and more effectively, to handle challenging automated test scenarios.This talk is independent of test frameworks, and even covers a little for those creating Qt desktop applications.
Tue, 25 Feb 12:30 PM - 01:30 PMLunch Lunch
Tue, 25 Feb 01:30 PM - 02:30 PMTechnical documentation is a backup so make sure it works Keynote
Imagine working on a team of programmers who write perfect code, never forget anything, never leave the team, have perfect verbal communication skills, and love meetings. That would be weird on many levels, but at least then you’d have a chance of not needing any technical documentation. For the rest of us, who have legacy code to deal with, we need to know how to write useful documentation. Otherwise, other peoples’ code will become a single point of failure to understand what’s going on.Technical documentation is our backup for not being able to easily understand a system and its code just by looking at it. Unfortunately, your backups probably haven’t been tested recently and don’t actually work. The solution is to write less documentation, not more, but not none. By writing less documentation, you can focus on writing documentation that counts, actually maintaining what you write, and have more time left over for writing code.
Tue, 25 Feb 02:30 PM - 03:15 PMAsk the Speaker Session
Tue, 25 Feb 03:15 PM - 03:30 PMBreak Break
Tue, 25 Feb 03:30 PM - 04:15 PMThe C++ rvalue lifetime disaster Session
Rvalue references have been with us since C++11. They have originally been introduced to make moving objects more efficient: the object an rvalue reference references is assumed to go out of scope soon and thus may have its resources scavenged without harm.The C++ standard library, for example, std::cref or std::ranges, makes use of yet another aspect of rvalue references: since they go out of scope soon, it is assumed unsafe to hold on to them beyond the scope of the current function, while lvalue references are considered safe.We, too, found this assumption to be very useful for smart memory management, particularly in generic code. Unfortunately, the C++ language itself violates this assumption in at least two places. First, rvalues bind to const&. This means that innocent-looking functions taking a parameter by const& and passing it through in some way silently convert rvalues to lvalue references, hiding any lifetime limitation of the rvalues. Std::min/max are two such examples. Worse still, every accessor member function returning a const& to a member suffers from this problem.Second, a temporary lifetime extension is meant to make binding a temporary to a reference safe by extending the lifetime of the temporary. But this only works as long as the temporary is still a prvalue. If the temporary has been passed through a function, even it has been correctly passed through by rvalue reference, lifetime extension will no longer be invoked and we get a dangling reference.These problems are not merely theoretical. We have had hard-to-find memory corruption in our code because of these problems. In this talk, Arno will describe the problems in detail, present a library-only approach to mitigate the problems, and finally, make an impossible-to-ever-get-into-the-standard proposal of how to put things right.
Tue, 25 Feb 04:15 PM - 04:30 PMBreak Break
Tue, 25 Feb 04:30 PM - 05:30 PMEmbrace No-Paradigm Programming! Keynote
What kind of language is C++? Is it a procedural programming language? An object-oriented programming language? A functional programming language? A generic programming language? All of those? None of those?In this talk I’ll analyse why it is increasingly hard to answer these questions, especially since the advent of “Modern C++”. I’ll demonstrate by example that the good solutions, i.e. the solutions that promote loose coupling, ease of use, ease of maintenance, and performance, are not firmly rooted in either one of the traditional paradigms. The examples will raise doubt whether it is reasonable to try to assign C++ to any one of the paradigms. Instead, they may be an indication that we should embrace no-paradigm programming.
Tue, 25 Feb 05:30 PM - 05:45 PMClosing speech and brief retrospective Closing Ceremony
Tue, 25 Feb 06:30 PM - 09:30 PMGeek Networking Party Networking

Visitor Ticket Price Buy Now

311 EUR Individual Ticket, until February 5th
291 EUR Group Ticket, until February 5th
461 EUR Standard, until February 24th
44.441466 26.094285

Venue Map & Directions

map of Radisson Blu Hotel Bucharest

Radisson Blu Hotel Bucharest

Calea Victoriei 63-81, Bucharest 010065

Get Directions

Featured Hotels in Bucharest

More Hotels