I’m happy to announce that the next meeting of the Belgian C++ Users Group is planned for Tuesday October 31st, 2023 at 18:00 at DAE and Howest (Howest, Campus Kortrijk Weide – The Penta).
18:30:Session 1: Elevating Precision in C++: A Journey below the Surface of Floating-Point (Tom Tesch) Floating-point numbers, with their varying levels of precision, serve as foundational components in the toolkit of both new and seasoned C++ developers. In this presentation, we will uncover the inner workings of floating-point variables, explore their limitations, and discuss strategies for extending precision while being mindful of associated trade-offs. Join us as we embark on a journey into the realm of floating-point arithmetic in C++, offering insights that will enhance your programming finesse.
19:30:Break
19:45:Session 2: Coroutines: Don’t try this at home (Lieven de Cock) In C++20 we got the core language feature “coroutines”. Mostly oriented to the advanced c++ programmers, and not for the mere mortals, since it requires a lot of boilerplate one would not like to write. It provides the fundamentals to further build upon. Unfortunately the STL library did not build on it yet, more was to come in C++23.
In C++23 we will only get one follow up: std::generator.
So let’s revisit coroutines. What are they? A function that can be suspended and resumed. Easily said, but how to make use of it and write that boilerplate after all. We will look at the coroutine from 2 different angles: the user code and the compiler, and we will inspect what each wants or would like to have, and where we need to glue them together and what is needed for that purpose. We will give insights on topics like: coroutine frame, couroutine handle, promise_type, the interface or api.
And if time permits we will look at an example of coroutines in use in asynchronous code (because a misconception is that coroutines (purely) have to do with threads and async’s).
20:45:Introduction to DAE and Howest, followed by a drink.
The event is freefor everyone, but you need to register for it.
There are 250 seats available for this event.
Note: The deadline for registrations is October 29th, 2023!
I’m happy to announce that the next meeting of the Belgian C++ Users Group is planned for Thursday May 11th, 2023 at 18:00 at Twikit.
Twikit ( https://www.twikit.com/ ) is sponsoring this event by providing the location, drinks and catering.
The agenda is as follows:
18:00:Reception with food.
18:30:Session 1: C++23 – What’s in it for You? (Marc Gregoire) C++23, the next release of the C++ standard, introduces new features to the core language and to the Standard Library. This session will bring you up to date with the latest features coming with this new release.
The session includes core language topics such as consteval if statements, multidimensional subscript operators, decay copy, unreachable code, and more. New Standard Library features that will be shown include monadic operations for std::optional, std::flat_map, std::flat_set, a stacktrace library, changes to the ranges library, improvements to std::format, std::expected, and many more.
19:30:Break
19:45:Session 2: Emscripten, what and how? (Dave De Breuck) This talk will give a brief introduction of Emscripten itself and explain how Emscripten, an LLVM-based compiler, converts C++ to JavaScript, which lets you run a C++ codebase on the web at near-native speed.
20:45:Introduction to Twikit, followed by a drink.
The event is free for everyone, but you need to register for it.
There are 60 seats available for this event.
Note: The deadline for registrations is May 9th, 2023!
I’m happy to announce that the next meeting of the Belgian C++ Users Group is planned for Tuesday January 17th, 2023 at 18:00 at Medicim / Envista.
Medicim / Envista ( https://www2.medicim.com/ ) is sponsoring this event by providing the location, drinks and catering.
The agenda is as follows:
18:00: Reception with food.
18:30: Session 1: Constraints and Concepts (Peter Van Weert) This presentation consists of two parts: First, I explain how you can, and more importantly should, constrain your template arguments using requires clauses and, typically, concepts. Doing so results in more readable compilation errors, self-documenting template definitions, and easier, more expressive template specialization. Next, I show how you can define your own concepts using the new syntax introduced in C++20. Quite some new syntax to learn, for sure, but you’ll quickly see that constraints and concepts are far easier to master (or at least understand) than the more advanced SFINAE techniques (std::enable_if_t, std::void_t, …) they essentially supersede.
19:30: Break
19:45: Session 2: Space Invaders: The Spaceship Operator is upon us (Lieven de Cock) Before C++20 we had to write 6 comparison operators for our user defined types (or even more). For sure, a tedious task. All this gets simplified with the introduction of the spaceship operator. What happens to your code, when you turn on “-std=c++20” even before we go near the spaceship operator, did your build break? Why does that happen? We will first investigate, another new feature of C++20, the rewriting rules, and how that impacts your code base. And then we will dissect the spaceship operator, from a using perspective, and from an implementation perspective. Oh yes, comparison categories, what are those, and why are these important with respect to the spaceship operator? All will be answered, what initially looked so simple, does require some extra thoughts it seems to correctly use the tool.
20:45: Introduction to Medicim / Envista, followed by a drink.
After a long break due to the Corona pandemic, I’m happy to announce that the next meeting of the Belgian C++ Users Group is planned for Tuesday June 28th, 2022 at 18:00 at Vandewiele Experience Center.
Vandewiele ( https://www.vandewiele.com/ ) is sponsoring this event by providing the location, drinks and catering.
The agenda is as follows:
18:00:Reception with food.
18:30:Session 1: Minimal Logging Framework in C++ 20 (Koen Poppe) As developers, adding log statements seems easy and risk-free. However, with hundreds of machines, collecting those log files can become quite a challenge, let alone making sense of the important information they contain. We set out to reduce logging to its essentials and explore optimisations not only in terms of disk space, but also runtime performance and even exposure. Leveraging ideas from well-known software related workflows, we will write a C++20 logging framework from scratch and highlight some surprises along the way.
19:30:Break
19:45:Session 2: Modern CMake (Lieven de Cock) CMake is a cross-platform open source software for managing the build process in a portable fashion. We will have a look at the basics of modern CMake. The old, pre modern cmake way should be considered obsolete, for very good reasons. We will talk about targets, build types, dependencies, usage specifications, …, a quick look on cross compilation, and using 3rd party libraries.
20:45:Introduction to Vandewiele, followed by a drink.
The next meeting of the Belgian C++ Users Group is planned for Thursday June 24th, 2021 at 18:00 and will be held online through Microsoft Teams.
The agenda is as follows:
18:00: The Teams meeting will start to give people plenty of time to join.
18:30: Session 1: A new way of formatting in C++20, are we getting there in the end? (Lieven de Cock) We will have a look at the problems the (s)printf family has brought upon us for decades, how iostreams tries to solve this in an unfriendly way, and how we can now have the best of both worlds, with the upcoming C++20 std::format (or for now with the reference implementation fmt::format).
19:30: Session 2: Understanding value categories in C++ (Kris van Rens) In C++ today, do you know what an xvalue is? Or a prvalue? Why would you want to know? Because it matters! In C++, each expression is characterized by a value category. These value categories are used to describe parts of the C++ standard, and are often used in books and articles. You might have heard of terms like ‘lvalue’ or ‘rvalue’, which are the most commonly known ones. Over the years, changes to the C++ language changed the meaning of value categories. This means a lot of information about value categories is outdated or just plain wrong. In this talk, I will explain what expression value categories are in today’s C++ standard. It turns out that knowledge about value categories can really be beneficial. Not only will it enrich your understanding of C++ in general, it will deepen your understanding of mechanisms like move semantics. Also, it can help you to make better choices about code. These choices can then leverage language rules to enable compilers to generate efficient code without redundant copies. Other, related topics that will be covered: copy elision, return value optimization, temporary materialization.
The event is freefor everyone, but you need to register for it.
There are 300 seats available for this event.
Note: The deadline for registrations is June 23rd, 2021!
I’ll be giving two sessions this year at CppCon 2020:
A keynote session titled “C++20: An (Almost) Complete Overview”: The technical work on C++20 was finished in January 2020, and is now being pushed through ISO certification. This presentation gives an overview of (almost) all new features in both the language and the Standard Library. Some more exotic features will be left out. New language features include modules, coroutines, concepts, templated lambdas, constexpr changes, designated initializers, the spaceship operator, string literals as template parameters, feature test macros, conditional explicit, immediate functions, and more. The second part of the session discusses the changes to the Standard Library. This includes topics such as ranges, atomic smart pointers, cancellable threads, a synchronization library, calendars, time zones, span, a formatting library, features test macros, and more. The material is mostly the same as the “C++20: What’s in it for you?” session from CppCon 2019, but it has been updated with the final standard. If you want a complete overview of all C++20 features, including references to other more deep-dive sessions at CppCon 2020 on certain topics, then this session is for you.
And a session titled “C++20 String Formatting Library: An Overview and Use with Custom Types”: C++20 introduced a nice formatting library with std::format(). This session will explain what the formatting library provides, how to use all of its functionality, and most importantly, how you can customize it so that you can use formatting strings that include your very own custom types and custom formatting parameters, and of course, how to handle errors.
I’m thrilled to announce that I’ll be giving a keynote presentation at this year’s CppCon. Here is the official announcement 😎
The title of my keynote talk is “C++20: An (Almost) Complete Overview”. C++20 is going be discussed quite a bit at this year’s conference and in addition to providing an overview of the new language/library changes, I will guide attendees to other CppCon talks related to C++20.
If you want a complete overview of all C++20 features, including references to other more deep-dive sessions at CppCon 2020 on certain topics, then this session is for you.
After this talk, you should have the confidence and familiarity you need to embrace the latest version of C++.
Part of the abstract:
This presentation gives an overview of (almost) all new features in both the language and the Standard Library. Some more exotic features will be left out. New language features include
This event is cancelled in light of the current state of the Covid-19 outbreak.
We will try to get our two international speakers, Greg and DeWang, back to Belgium at a future event.
The next meeting of the Belgian C++ Users Group is planned for Monday March 30th, 2020 at 18:00 at KU Leuven Department of Computer Science. The welcoming and reception takes place at Foyer Computerwetenschappen (room 00.191), while the sessions will take place in Auditorium Erik Duval (room 00.225)
18:30: Session 1: Amazing tricks with the GDB debugger (Greg Law) If you’re writing C++ for anything other than Windows, chances are
that you occasionally break out GDB. This session presents some of the
lesser known features of GDB that can change the way you debug. GDB has
come a long way in the last few years and now does so much more than
break, print, step and continue. Reversible debugging; Non-Stop Mode;
Multi-process Debugging; and Dynamic Printf are but some of its best
features, and its built-in Python scripting is particularly powerful.
Join Undo co-founder and CEO, Greg Law, as he takes you through a series
of demos to show some amazing tricks with GDB and some of its powerful
new (and not-so-new) features that you may not have heard of.
19:15: Session 2: Static analysis and Coverity (DeWang Li) The C/C++ code you create plays such a pivotal role on our planet,
and as such, companies are investing heavily into ensuring they are safe
and robust. One of the disciplines they invest in to ensure that is
static analysis. DeWang will explain the fundamentals of static
analysis, and using his favorite product, Coverity, demonstrate some of
its capabilities. He will share stories from working with some of the
top Silicon Valley companies and how they apply Coverity.
19:55: Break
20:10: Session 3: Interactive discussion on pointers (Lieven de Cock) Let’s have an exchange of thoughts on the topic of pointers: raw
pointers, smart pointers, std/boost::optional and
std::reference_wrapper.
How to express intent and how to avoid checking things that might not be needed to check?
We will present some use cases to get the discussion going. This is an
interactive session, so start thinking about questions or opinions you
might have.
20:50: Introduction to Dekimo, and KU Leuven Department of Computer Science, followed by a drink.
The next meeting of the Belgian C++ Users Group is planned for Wednesday January 29th, 2020 at 18:00 at OMP.
OMP ( https://www.omp.com/ ) is sponsoring this event by providing the location, drinks and catering.
The agenda is as follows:
18:00: Reception with food.
18:30: Session 1: Coroutines in C++20 (Johan Vanslembrouck) A coroutine is a function that can suspend execution to be resumed
later. Coroutines allow for sequential code that executes asynchronously
(e.g. to handle non-blocking I/O without explicit callbacks), and also
supports algorithms on lazy-computed infinite sequences and other uses.
Unlike most other languages that support coroutines, C++ coroutines are
open and not tied to any particular runtime or generator type and allow
libraries to imbue coroutines with meaning, whereas the compiler is
responsible solely for efficient transformation of a function to a state
machine that is the foundation of the coroutine.
The presentation will explain the C++ coroutines mechanism, i.e. code
generated by the compiler and the code to be written by a coroutine
developer. The presentation includes examples of an client-server
application using Boost ASIO in combination with C++ 20 coroutines and a
producer-consumer queue implemented with and without coroutines.
19:30: Break
19:45: Session 2: The evolution of the C++ Lambda (Lieven de Cock) Before C++11, we had to write function objects (functors) or free
standing functions to pass as the callable to several algorithms (for
example: for_each). The drawback was that we were introducing objects in
a bigger scope than actually needed, and it can be considered as rather
some boilerplate.
With the introduction of the lambda we can write (little) callables at
the moment we need them. Over the years (or better said over the new
standards) the lambdas gained extra power and became more user friendly.
In this talk we will have a look on the evolution of the lambda since
its birth in C++11.
The next meeting of the Belgian C++ Users Group is planned for Thursday October 10th, 2019 at 18:00 at Brabanthal (room Luna).
think-cell ( https://www.think-cell.com/ ) is sponsoring this event by providing the location, drinks and catering.
The agenda is as follows:
18:00: Reception with food.
18:30: Session 1: C++20: What’s in it for you? (Marc Gregoire) With the current three-year pace of C++ releases, the next release is scheduled for 2020, C++20. This presentation gives an overview of what you can expect in the new standard. It starts with discussing the C++20 language features that will be added by the C++20 standard, such as concepts, coroutines, templated lambdas, the spaceship operator, pack expansion in lambda captures, string literals as template parameters, extra initializer for range-based for loop, modules, and more. Next, we’ll delve into the new Standard Library features, such as ranges, std::span, atomic smart pointers, and more. Depending on the outcome of the next C++ Standard Committee meeting, the list of new features might include improved futures, task blocks, and text formatting. If you want a concise overview of what the C++20 standard will offer, then this presentation is for you.
19:30: Break
19:45: Session 2: From Iterators To Ranges — The Upcoming Evolution Of the Standard Library (Arno Schödl) Pairs of iterators are ubiquitous throughout the C++ library. It is generally accepted that combining such a pair into a single entity usually termed Range delivers more concise and readable code. Defining the precise semantics of such Range concept proves surprisingly tricky, however. Theoretical considerations conflict with practical ones. Some design goals are mutually incompatible altogether.
20:45: Introduction to think-cell, followed by a drink.
The second Belgian LLVM Meetup will take place at the Guardsquare offices in Leuven, the 19th of June. Anyone who’s working with, or is simply interested in, the LLVM project or any of its tools; Clang, lldb, lld, Polly,… is invited. The evening starts off with three short talks on various LLVM related topics. Afterwards, there will be plenty of time to exchange experiences and get to know the local LLVM community.
Schedule:
20h00: Arrival
20h30: Talks ( +- 20min each )
Just compile it: High-level programming on the GPU with Julia.
Sim: a contract-based programming language for safety-critical software.
Processing complete iOS applications on top of LLVM.
The next meeting of the Belgian C++ Users Group is planned for Wednesday July 3rd, 2019 at 18:00 at CluePoints @ OFFBar | ONSpace.
CluePoints ( https://cluepoints.com/ ) is sponsoring this event by providing the location, drinks and catering.
The agenda is as follows:
18:00: Sandwiches.
18:30: Session 1: What’s new in Visual C++ 2019? (Marc Gregoire) Microsoft Visual Studio 2019 and Visual C++ 2019 come with a host of new features. In this session, we will have a look at the important changes and improvements for C++ developers.
19:30: Break
19:45: Session 2: Statistical Scientific programming: challenges in converting R to C++ (Olivia Quinet) Scientific programming is in itself a challenge due to several concomitant issues and requirements including low response time, low memory usage, minimizing numerical errors, error propagation. R is a programming language for statistical computation providing a wide set of packages for linear and non linear modeling, statistical tests, … This talk will focus on the different Object-Oriented strategies implemented to overcome those challenges, speed up the computation while reducing the memory footprint.
20:45: Introduction to CluePoints, followed by a drink.
Sioux ( http://www.sioux.eu/ ) is sponsoring this event by providing the location, drinks and catering.
The agenda is as follows:
18:00: Sandwiches.
18:30: Session 1: Parsing CSS in C++ with Boost Spirit X3 (Ruben Van Boxem) Reading and writing is a fundamental part of programming. Even more so in C++, as it is a relatively low-level language. If not hand-written from scratch, C++ programmers often resort to parser generators such as Antlr, Bison, byacc, Flex, and many others. The former option increases maintenance burden, as the code involved is usually not trivial and error-prone. The latter option complicates the build setup and one loses a certain degree of flexibility in how the parser can be handled.
The authors of Boost.Spirit approached this dichotomy, shook it up a bit, and came up with something better. Boost Spirit, already at its third iteration of implementation, harnesses the C++ language and its generative power to enable us to write parser grammar in C++. This allows for the flexibility of using C++, combined with full control of what is parsed how, while maintaining the simplistic abstract representation of what is being parsed. The latest iteration, X3, employs techniques made possible by C++14 to simplify its implementation, to decrease compile times whilst providing the same flexibility of previous versions. I intend to give a general introduction, followed by a partial implementation of a CSS parser, and hope the power of Boost Spirit can convince you to at least give it whirl.
19:30: Break
19:45: Session 2: Using Monoids in C++ (Kristoffel Pirard) Effective coders recognise tedious repetition and transform it into reusable patterns. Frameworks, libraries and design patterns arise from it. After the GoF Object Oriented patterns, today we are also learning from the functional programming world. One of the patterns they bumped into is the Monoid: it has its application in addition, accumulation, concatenation, you name it. And it’s a simple one.
This talk is about how Monoids seem to be everywhere, and how recognising them has influenced my daily practice. It will show a glimpse of the land of functional design patterns and look at practical aspects of using Monoids in C++. I believe it’s important. And I believe there’s a lot more to be discovered.
20:45: Introduction to Sioux, followed by a drink.
The next meeting of the Belgian C++ Users Group is planned for Thursday October 25th, 2018 at 18:00 at Altran.
Altran ( http://www.altran.com/ ) is sponsoring this event by providing the location, drinks and catering.
The agenda is as follows:
18:00: Sandwiches.
18:30: Session 1: Writing Standard Library Compliant Data Structures and Algorithms (Marc Gregoire) The C++ Standard Library provides a lot of data structures, but it cannot provide every possible data structure or algorithm that you might need. So, sometimes, you might find the need to write your own data structure or algorithm. Since you are writing them yourself, you could give them any interface that suits you. However, wouldn’t it be better to make them compliant with the Standard Library? That way, when you write your own algorithm, you will be able to use that algorithm independently of the type of the container that contains the data for your algorithm. Similarly, if you write a Standard Library compliant data structure, then you will be able to use Standard Library algorithms on the data in your own data structure.
It’s clear, there are a lot of advantages in making your data structures and algorithms compliant with the Standard Library. We’ll first develop a simple algorithm with our own interface. Then we’ll look into what changes we have to make to transform the interface to be Standard Library compliant. Finally, we’ll demonstrate our adapted algorithm by running it on data in a variety of Standard Library containers.
In the last part of the presentation we’ll crank it up a notch. We’ll start by writing our own data structure, initially without thinking too much about the Standard Library. Then we’ll look at an overview of the different sets of requirements that the Standard Library imposes for the different types of containers (sequential, associative, and unordered associative). Finally, we’ll adapt our data structure step-by-step to transform it into a Standard Library compliant data structure. This of course includes writing a suitable iterator. Finally, we’ll demonstrate the transformed data structure by running Standard Library algorithms on the data in it.
19:30: Break
19:45: Session 2: Memory Architecture & Performance (Barry Van Landeghem) The impact of memory architecture on performance is something which every developer should be aware of. In general improving your code performance is already hard and complex. Computer cache memories have led to introduce a new complexity measure for algorithms and new performance counters for code.
In this talk we’ll see what data locality is all about and why using data locality can be a great tool for a developer to boost the performance of his/her algorithms/data structures.
At the end we’ll also at the implications towards parallelism (false sharing/NUMA,…).
20:45: Introduction to Altran, followed by a drink.
The next meeting of the Belgian C++ Users Group is planned for Thursday June 28th, 2018 at 18:00 at Amplidata.
Amplidata, a Western Digital company, ( http://amplidata.com/ ) is sponsoring this event by providing the location, drinks and catering.
The agenda is as follows:
18:00:Sandwiches.
18:30:Session 1: Strongly Typed Declarative Bitsets in C++17 (Ewoud van Craeynest) The C++ standard states that bool values behave as integral types, that they participate in integral promotions and conversions.
As a community, we reached the consensus that those integral types aren’t particularly type safe. So, neither are our bools, neither are our bitsets, nor the bits within a bitset. Numbers just being numbers can lead to subtle bugs and impede merciless refactoring.
This session aims to introduce a strongly typed, declarative bitset type using C++17, by looking at a strongly typed bool and template offset bitfields first.
19:30:Break
19:45:Session 2: The Observer pattern and boost.signals2 (Lieven de Cock) The Observer pattern, is one of the many famous GOF design patterns. We will take a look at a minimal implementation, and then enhance that implementation a bit. We briefly touch some potential problems and think about options on how to deal with them. Then we look at a way of avoiding boiler plate code, by using the boost.signals2 library. This header-only boost library will take care of much administration work so we don’t need to reinvent the wheel. No prior knowledge is needed of the observer design pattern, nor the boost.signals2 library.
Just bring your C++ (11-14-17) skills and … observe.
20:45:Introduction to Amplidata, followed by a drink.
Nokia ( http://nokia.be/ ) is sponsoring this event by providing the location, drinks and catering.
The agenda is as follows:
18:00:Sandwiches.
18:30:Session 1: Boost.Asio C++ (Network) Programming (Part 2) (Lieven de Cock) Boost.Asio is a cross-platform C++ library for network and low-level I/O programming, either using a synchronous or asynchronous model. We will examine this powerful library in 2 sessions.
In this second session we will pick up where we left of, after connecting as a client we will start interacting with the server, and we will see how to implement a server application.
We will do this both in a synchronous and an asynchronous way, keeping an eye on scalability.
Note that the C++ Standard networking proposals are based directly on Boost.Asio, so next to learning this great library we are also preparing for the future C++ standard.
19:30:Break
19:45:Session 2: A possible future for embedded (Odin Holmes) Through the much-hyped advent of Industry 4.0 and IoT, billions of new bare metal devices will be connected to the internet or intranets and will be expected to talk to each other, even across company boundaries. This presents a plethora of new challenges, many of which share a common root; it is crucial that we build a foundation for code reuse and encapsulation of expertise in this domain. What does cross-platform code really mean when we are targeting thousands of ‘platforms’? When encapsulating expertise, we implicitly make assumptions about user code and user code implicitly makes assumptions about library code. What are valid assumptions? What is the basic interface? In this talk I will present a possible future for bare metal development which attempts to answer these questions.
Barco ( https://www.barco.com/ ) is sponsoring this event by providing the location, drinks and catering.
The agenda is as follows:
18:00: Sandwiches.
18:30: Session 1: Threads are evil (Frederik Vannoote) Many applications beyond the scope of “Hello World” use threads for various reasons. Be it for having many sequential execution paths, preventing a blocked UI or offloading CPU intensive tasks to the background.
However threads don’t come for free. They suddenly add a complex dimension to a simple application. Who dares to claim to have written a flawless threaded application? Is it really bringing a performance boost?
Let’s have a closer look to what we are facing when using threads and what alternatives we have.
19:00: Session 2: Legacy code refactoring case (Roeland Van Lembergen) Going from legacy C++ code to state of the art tested and testable code by means of focused refactoring and componentization. Building a future proof platform using code generation.
19:30: Break
19:45: Session 3: Boost.Asio C++ (Network) Programming (Lieven de Cock) Boost.Asio is a cross-platform C++ library for network and low-level I/O programming, either using a synchronous or asynchronous model. We will examine this powerful library in 2 sessions. The first session will first focus on using it as a task processor, something to offload work to, in a nice scaling way with respect to threads. Next we will have a look at timers based upon this library. Equipped with the basic techniques we will start looking at the networking part, first examining some structures and some first network activities, and if time permits it we will implement a first network client. From this talk on boos:asio:ioservice is ready to service you!
In the second session we will dive head first in the network programming with no further limits.
Note that the C++ Standard networking proposals are based directly on Boost.Asio, so next to learning this great library we are also preparing for the future C++ standard.
20:45: Experience tour by Barco (Laserprojection/extreme surround sound in new cinema format, operation room for healthcare, control room, entertainment/concerts…), followed by a drink.
The event is free for everyone, but you need to register for it.
There are 100 seats available for this event.
Note: The deadline for registrations is January 5th, 2018!
The next meeting of the Belgian C++ Users Group is planned for Tuesday April 11th, 2017 at 18:00 at VUB.
SoftKinetic ( https://www.softkinetic.com/ ) is sponsoring this event by providing the location, drinks and catering.
The agenda is as follows:
18:00: Sandwiches.
18:30: Session 1: Challenges in Modern Embedded Development Using C++ (Glyn Matthews) This talk will cover things such as constrained systems (e.g. CPU, cache, memory), older compilers affecting the use of library and language features from the 2011 standard and beyond, porting, testing etc. One theme will be that what’s “standard” and “modern” is not what you need to get your software working. In some ways, I’d like to push back a bit on the trend to more modern code bases, because it turns out it’s quite rare for developers to have access to the latest language features (and by “latest” I mean 6 years old…)
19:30: Break
19:45: Session 2: SFINAE and type traits: In the Mix (Lieven de Cock) The journey will start with a test drive of simple method overloading, shortly later enriched with some ‘templates’ laps. Then we shift gears and we add type traits to the mix. In order to arrive at the finish line, some SFINAE herbs are added to spice up the mix. And as the proof of the pudding is in the eating, a small use case, which will bring things together, will be served.
In the end the main question remaining is: do we std::enable_if some drinks afterward?
20:45: Short presentation and demo by SoftKinetic followed by a drink.
The event is free for everyone, but you need to register for it.
There are 50 seats available for this event.
Note: The deadline for registrations is April 4th, 2017!
The next meeting of the Belgian C++ Users Group is planned for Tuesday January 24th, 2017 at 18:00 at Nobel Biocare.
Nobel Biocare ( https://www.nobelbiocare.com/ ) is sponsoring this event by providing the location, drinks and catering.
The agenda is as follows:
18:00: Sandwiches.
18:30: Session 1: What’s new in C++17, Part 2? (Peter Van Weert) This talk will continue the talk from November 2016, giving an overview of all the new features scheduled to be included in C++17. This second part will focus more on library changes.
19:30: Break
19:45: Session 2: Coming to terms with C++ in a huge financial application (Cosmin Cremarenco) Murex is a large financial application – ~15M lines of code of C/C++. Migrating from C to C++ has come with enormous challenges. Essential components had to be upgraded to what a C++ programmer naturally expects today. A legacy object framework based on C had to be deprecated in favour of C++, the build system had to be upgraded, proper testing put in place, processes devised to how third-party libraries are introduced in our codebase and used and, finally, a performant serialization system that is in-line with today’s expectations on latency and throughput when communicating between components written in different or same programming language.
20:45: Short presentation/demo by Nobel Biocare followed by a drink.
The event is freefor everyone, but you need to register for it.