|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
Timings9:00 AM - 9:30 PM General Hours
Entry FeesPaid Ticket Starts from 291 EUR View Details
10 - 50 Exhibitors Estimated Count
Category & TypeConference
IT & Technology
Editions25 Feb 2020 Interested
Claim this event
OrganizerSend Stall Book Request
Mozaic Works Romania2 Total Events / 1 Upcoming Event
User Community [ Users who have shown interest for this Event ]
José Daniel GarcìaAssociate Professor in Computer Architecture at the Computer Science and...
Clare MacraeC++ Legacy Code Consultant
Alex BolboacaCTO, Trainer, Coach, Author at Mozaic Works
Augustin PopaProgram Manager on the Microsoft C++ team
Arno SchödlCo-Founder and Technical Director of think-cell Software GmbH
Peter HiltonSoftware developer, writer, speaker, trainer, and musician
Klaus IglbergerC++ Trainer & Consultant
Schedule & Agenda
|Tue, 25 Feb 05:45 AM - 06:30 AM||Closing and departure to the Party |
|Tue, 25 Feb 09:00 AM - 09:15 AM||Registration Registration|
|Tue, 25 Feb 09:15 AM - 09:30 AM||Opening Opening Ceremony|
|Tue, 25 Feb 09:30 AM - 10:30 AM||C++ 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 AM||Break Break|
|Tue, 25 Feb 10:45 AM - 11:30 AM||Refactoring 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 AM||C++ 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 AM||Break Break|
|Tue, 25 Feb 11:45 AM - 12:30 PM||Tools 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 PM||C++ 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 PM||Lunch Lunch|
|Tue, 25 Feb 01:30 PM - 02:30 PM||Technical 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 PM||Ask the Speaker Session|
|Tue, 25 Feb 03:15 PM - 03:30 PM||Break Break|
|Tue, 25 Feb 03:30 PM - 04:15 PM||The 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 PM||Break Break|
|Tue, 25 Feb 04:30 PM - 05:30 PM||Embrace 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 PM||Closing speech and brief retrospective Closing Ceremony|
|Tue, 25 Feb 06:30 PM - 09:30 PM||Geek 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|
Venue Map & Directions
Calea Victoriei 63-81, Bucharest 010065
Featured Hotels in Bucharest
Siqua Hotelfrom RON 220.23
Euro Hotels Gara de Nord (Polizu)from RON 281
Divan Residence Apartmentsfrom RON 167
Ramada Hotel & Suites Bucharest..from RON 611.18