March 2018

CppCast Episode 143: C++ and Typescript at Ubisoft Massive with Ólafur Waage

Episode 143 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Ólafur Waage to discuss the work done at Ubisoft Massive using C++ and Typescript for application development and much more.

CppCast Episode 143: C++ and Typescript at Ubisoft Massive with Ólafur Waage

by Rob Irving and Jason Turner

About the interviewee:

Ólafur Waage is a Generalist Programmer at Ubisoft Massive where he works on the Uplay PC client and services. His work focuses mainly on programming with C++ but Python and C# do appear from time to time. In his spare time he plays video games which is not surprising given his job but he also likes puzzles, non fiction audio books and it would be a very strange day if it were not filled with music in some way.

Meeting C++ is on Patreon

Meeting C++ launched a new community on Patreon:

Starting a new Community at Patreon

by Jens Weller

From the article:

Something new: you can now support Meeting C++ through Patreon!

This will go mostly into videos & video interviews and the Meeting C++ blog. I started doing my own videos and video interviews on YouTube last year, and to compliment that, I decided to also start a community of supporters on patreon. You'll be able to know guests of Meeting C++ & friends ahead of time and be able to suggest potential questions to ask...

Guidelines For Rvalue References In APIs--Jonathan Müller

Everything you need to know.

Guidelines For Rvalue References In APIs

by Jonathan Müller

From the article:

I’ll be giving a talk at ACCU about when to use which pointer types and why.

While working on that I made some guidelines for rvalue references in interfaces which didn’t quite fit the talk, so I’m writing about them here.

When should you use rvalue references as function parameters?

When as return types?

What are ref-qualified member functions and when and how should you use them?

Let’s tackle it one by one...

My Little (String) Optimization, Part 2--Jordan Rose


My Little (String) Optimization, Part 2

by Jordan Rose

From the article:

Previously, I talked about how Clang is smart enough to optimize a series of comparisons against constant strings in C++ by starting out with a switch on the length. I left off with the idea that while this is good, you might be able to do better if your strings have a unique character at a certain offset. Today we’re going to see what that looks like.

Freestanding trip report: emBO++ and Jacksonville wg21 2018 experience-Ben Craig

A good experience.

Freestanding trip report: emBO++ and Jacksonville wg21 2018 experience

by Ben Craig

From the article:

I'm the author of P0829, Freestanding Proposal. The tl;dr of the paper is that it standardizes a subset of the library suitable for kernel and embedded programming. R0 of this poorly titled paper was reasonably well received in the Albuquerque 2017 meeting. I was encouraged to send it out to a wider audience... and so I did. One of the people that I sent it to was Odin Holmes, and that got me an invitation to emBO++, my first speech at a public conference. This conference was the week prior to the Jacksonville meeting, so I ended up flying from Bochum to Jacksonville without going home first...

ISO C++ Committee – Jacksonville 2018, trip report -- Timur Doumler

Timur Doumler has joined the CLion team in fall 2017. He continues to be active on the C++ Committee, as it fits well into JetBrains' strategy: our C++ team would like to be actively involved in the committee and feed our experience with implementing language features in our C++ tools back into the ongoing work on the evolution of the C++ language.

ISO C++ Committee – Jacksonville 2018 trip report

by Timur Doumler

From the article:

From the 12th to the 17th of March 2018, I travelled to Jacksonville, Florida, to attend the ISO C++ Committee meeting as JetBrains’ representative on the committee. I decided to focus on Evolution Working Group and cover the most relevant discussions concerning language evolution:

  • Day 1: Structured bindings and concepts
  • Day 2: Let’s break some code!
  • Day 3: Coroutines and Modules
  • Day 4: Compile-time programming
  • Day 5: New Tooling Study Group
  • Day 6: Plenary

CLion 2018.1 is released: more C++17, WSL, CMake Install, Fortran and Rust plugins -- JetBrains

A new release is here!

CLion 2018.1 is released: more C++17, WSL, CMake Install, Fortran and Rust plugins

by Anastasia Kazakova

From the article:

With this year’s first update, CLion 2018.1, you get enhanced C++17 support (including structured bindings and if/switch with initializers), new CMake actions (like CMake Install), various editor improvements (breadcrumbs and more), and a more responsive editor.

Windows users can benefit from support for Windows Subsystem for Linux (WSL), which makes it possible to compile, run, and debug Linux-compatible binaries while working on Windows, and even run them with Valgrind Memcheck.

2018.1 version also comes with the bundled support for Objective-C and Objective-C++, Fortran and Rust plugins. Rust comes with Cargo build system and the debugger.


Give Your Old C/C++ Code Some New Love -- Richard Thomson

This article explores how to modernize your legacy C/C++ code base, using an open source fractal renderer originally written in C and x86 assembly language as the case study.

Give Your Old Code Some New Love

by Richard Thomson

From the article:

If you’re not careful, entropy creeps its way into your code base. You take a shortcut or code something in a way that you know is sloppy and you say to yourself “I’ll come back to that later”, but later you’re faced with new feature requests or some other Imminent Disaster(tm) and you don’t go back and clean up the mess you made earlier. This is only natural in a code base and when the messes are few and far between, it is tolerable.


In this post, we’ll take a look at an open source project with a code base that is over 30 years old and has accumulated some “cruft” along the way. We’ll discuss various strategies for coping with the cruft and how to get rid of it in as safe a manner as possible. After all, we don’t want to introduce bugs while we clean up cruft.