November 2017

The Boost C++ Master Class with Boris Schäling

Boris Schäling offers a new C++ master class.

The Boost C++ Master Class

by Boris Schäling

About the training:

Welcome to a 2-day training that strives to deepen your understanding of the Boost C++ Libraries. As of today, the Boost C++ Libraries are the most important stepping stone if you want to increase your productivity as a C++ developer and significantly improve the quality of your code. In-depth knowledge of the Boost C++ Libraries empowers you to write code that is shorter, more expressive, less error-prone, more agile, and more future proof.

Boris Schäling is one of the world’s leading professional Boost C++ expert. He has seen multiple times how detailed knowledge of the Boost C++ Libraries can turn a C++ developer into an exceptional C++ developer. Boris Schäling is an active member of the Boost community. He is the author of the book "The Boost C++ Libraries" and responsible for the website

The training is for intermediate and advanced C++ developers. Advantage if you have some experience with the Boost libraries (prior knowledge of Boost helpful, but not required).

Don’t miss out on the opportunity to attend this 2-day course, to be held in Stockholm on the 13th-14th March, 2018. Please notice there are a limited number of seats.

Jupyter + Cling: Interactive C++

Jupyter Notebook is the #1 canvas for data science, and it now leverages CERN's Cling interpreter to support C++:

Interactive Workflows for C++ with Jupyter

by Sylvain Corlay, Loic Gouarin, Johan Mabille, and Wolf Vollprecht

A few highlights from the article:

... just write some code and hit Shift+Enter

... live quick-help, fetching the content on

... visual output can also be displayed using the rich display mechanism of the Jupyter protocol

... the combination of xtensor with the C++ notebook provides an experience very similar to that of NumPy in a Python notebook

... If you are interested in trying the various notebooks presented in this post, there is no need to install anything. You can just use binder

... In September 2017, the 350 first-year students at Paris-Sud University who took the “Info 111: Introduction to Computer Science” class wrote their first lines of C++ in a Jupyter notebook

C++ Coroutines: Understanding operator co_await—Lewis Baker

An article very complete!

C++ Coroutines: Understanding operator co_await

by Lewis Baker

From the article:

In the previous post on Coroutine Theory I described the high-level differences between functions and coroutines but without going into any detail on syntax and semantics of coroutines as described by the C++ Coroutines TS (N4680).

The key new facility that the Coroutines TS adds to the C++ language is the ability to suspend a coroutine, allowing it to be later resumed. The mechanism the TS provides for doing this is via the new co_await operator.

Understanding how the co_await operator works can help to demystify the behaviour of coroutines and how they are suspended and resumed. In this post I will be explaining the mechanics of the co_await operator and introduce the related Awaitable and Awaiter type concepts.

But before I dive into co_await I want to give a brief overview of the Coroutines TS to provide some context...

CopperSpice: Multithreading and libGuarded

New videos on the CopperSpice YouTube Channel:

Multithreading in C++

by Barbara Geller and Ansel Sermersheim

About the video:

Covers the terminology of multithreaded design, why it can be challenging, and presents some examples of resources, threads, and locking.

Multithreading with libGuarded

by Barbara Geller and Ansel Sermersheim

About the video:

Discusses some of the classes in libGuarded, which provides a higher level abstraction for managing access to shared data.

Please take a look and remember to subscribe!

code::dive Trip Report

Adi Shavit reports from the recent code::dive conference

code::dive Trip Report

by Adi Shavit

From the article:

The code::dive conference took place last week in Poland at the beautiful city of Wrocław (pronounced VROWTS-WAF). I had seen excellent videos of talks from previous years and this year promised a roster of distinguished speakers.
I had never been to a C++ conference before and beyond the talks I was looking forward to meeting face-to-face many of my online Slack, Twitter and GitHub friends, followers and followees, as well as many of the speakers whose work I’ve been following online through blogs, repos and videos.

Machine Learning with C++—Gareth Richards

Learning about Machine learning with C++.

Machine Learning with C++

by Gareth Richards

From the article:

An introduction to Machine learning demonstrating a how to write a short C++ library which can recognize handwritten digits and implements the standard learning algorithm for neural networks, known as stochastic gradient descent.



How to Use the STL With Legacy Output Collections—Jonathan Boccara

And how back_inserter works.

How to Use the STL With Legacy Output Collections

by Jonathan Boccara

From the article:

When you start using the STL and its algorithms in your code, it’s a bit of a change of habits. And then after a while you get used to it. Then it becomes a second nature. And then even your dreams become organized into beautifully structured ranges that fly in and out of well-oiled algorithms.

And when you reach that point, there is no coming back.

Until the day you come upon an old legacy structure that won’t let itself approached by the elegant and expressive way of coding that STL algorithms have. It’s a terrible encounter, where the beast tries to suck you back into the lengthy and dangerous quicksand of the raw for loops that now seemed so far away...

CppCast Episode 127: Oculus Research with Dave Moore

Episode 127 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Dave Moore from Oculus Research to talk about the Oculus C++ SDK and Augmented Reality.

CppCast Episode 127: Oculus Research with Dave Moore

by Rob Irving and Jason Turner

About the interviewee:

Dave Moore started programming after getting fired from his college work study job. This worried his parents, but it seems to have worked out in the end. After spending 17 years in and around the computer games industry, most recently at RAD Game Tools, he's now a software engineer at Oculus Research, working to advance the computer vision technology underlying virtual and augmented reality.

Trip Report: C++ Standards Meeting in Albuquerque, November 2017—Botond Ballo

A thorough and detailed summary of the recent six-day meeting.

Trip Report: C++ Standards Meeting in Albuquerque, November 2017

by Botond Ballo

From the article:

A couple of weeks ago I attended a meeting of the ISO C++ Standards Committee (also known as WG21) in Albuquerque, New Mexico. This was the third committee meeting in 2017; you can find my reports on previous meetings here (February 2017, Kona) and here (July 2017, Toronto). These reports, particularly the Toronto one, provide useful context for this post.

With the final C++17 International Standard (IS) having been voted for publication, this meeting was focused on C++20, and the various Technical Specifications (TS) we have in flight, most notably Modules...