December 2017

Overload 142 is now available

ACCU’s Overload journal of December 2017 is out. It contains the following C++ related articles.

Overload 142 is now available

From the journal:

Too Fast! Too slow! Too right!!
Many products over-promise. Frances Buontempo muses on how to get things just right. by Frances Buontempo

CAS (Re)Actor for Non-Blocking Multithreaded Primitives
Lock free programming can be difficult. Sergey Ignatchenko shows how copy and swap can work for reactors. by Sergey Ignatchenko

A Design Example
Design issues cause problems. Charles Tolman considers an organising principle to get to the heart of the matter. by Charles Tolman

The Last Word in Patterns
What can you do in a single transaction in a database? Paul Grenyer writes us his Single CrUD pattern. by Paul Grenyer

Implementing Type-Classes as OCaml Modules
Type classes achieve overloading in functional paradigms. Shayne Fletcher implements some as OCaml modules. by Shayne Fletcher

Evolutionary Computing Frameworks for Optimisation
Evolutionary algorithms can find optimal solutions to problems. Aurora Ramírez and Chris Simons give us an overview. by Aurora Ramírez and Chris Simons

C++17 - The Complete Guide -- Nicolai M. Josuttis

The first draft of "C++17 - The Complete Guide" is now available at

C++17 - The Complete Guide

by Nicolai M. Josuttis

About the guide:

Buy early, pay less, free updates.

This book uses a new publishing model: It is written incrementally and self-published. That way you can buy it even before it is complete and I have income while I am still writing it (note that I do C++ for a living).

Most of the new features are covered already in detail:

  • All major new core language features
  • The new library components (filesystem only by a few examples)

But there is still enough to do (see http://www.cppstd17.com/ for details).

All covered features went through significant review with awesome feedback and already have a lot of useful details including how they integrate with other features and discussing all the traps you should avoid.

Mixin Classes: The Yang of the CRTP--Jonathan Boccara

Some template tricks.

Mixin Classes: The Yang of the CRTP

by Jonathan Boccara

From the article:

Now that we’re clear on how the CRTP works, let me share with you another technique involving templates that is complementary to the CRTP: Mixin classes. I learnt about mixin classes by watching Arthur O’Dwyer’s Template Normal Programming talk at CppCon (actually you can find them in the slides because they were skipped over during the presentation)...

CppCast Episode 130: Reverse Debugging with Greg Law

Episode 130 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Dr. Greg Law from Undo to talk about the magic of reverse debugging and how it is becoming more widely known in the programming community.

CppCast Episode 130: Reverse Debugging with Greg Law

by Rob Irving and Jason Turner

About the interviewee:

Greg is the co-founder and CEO of Undo. He is a coder at heart, but likes to bridge the gap between the business and software worlds. (Sadly, these days most of Greg's coding is done on aeroplanes.)

Greg has 20 years’ experience in the software industry and has held development and management roles at companies including the pioneering British computer firm Acorn, as well as fast-growing start ups, NexWave and Solarflare. It was at Acorn that Greg met Julian and on evenings and weekends, they invented the core technology that would eventually become UndoDB. Greg left Solarflare in 2012 to lead Undo as CEO and has overseen the company as it transitioned from the shed in his back garden to a scalable award-winning business.

Greg holds a PhD from City University, London, that was nominated for the 2001 British Computer Society Distinguished Dissertation Award. He lives in Cambridge, UK with his wife and two children and in his spare time, catches up on email.

Red Hat at the ISO C++ Standards Meeting (Nov 2017): Parallelism and Concurrency -- Torvald Riegel

Discover how C++ evolves:

Red Hat at the ISO C++ Standards Meeting (November 2017): Parallelism and Concurrency

by Torvald Riegel

From the article:

Several Red Hat engineers attended the JTC1/SC22/WG21 C++ Standards Committee meetings in November 2017. This post focuses on the sessions of SG1, the study group on parallelism and concurrency. SG1 had a full schedule as usual, with Executors, Futures, and deferred reclamation mechanisms (e.g., RCU) being major discussion topics. We also started to track the state of proposals and topics we will need to discuss in a publicly accessible bug tracker...

C++17 Feature Removals And Deprecations--Stephan T. Lavavej

This is about visual studio, but this is also about how the deprecated mechanisms work.

C++17 Feature Removals And Deprecations

by Stephan T. Lavavej

From the article:

Technology advances by inventing new ways of doing things and by discarding old ways. The C++ Standardization Committee is simultaneously adding new features and removing old features at a gradual pace, because we’ve discovered thoroughly better ways of writing code. While feature removals can be annoying, in the sense that programmers need to go change old codebases in order to make them conform to new Standards, they’re also important. Feature removals simplify the Core Language and Standard Library, avoiding the doom of accreting complexity forever. Additionally, removing old features makes it easier to read and write code. C++ will always be a language that offers programmers many ways to write something, but by taking away inferior techniques, it’s easier to choose one of the remaining techniques which are more modern...

C++ Day 2017--Marco Arena

My report on the last C++ event we organized in Italy:

C++ Day 2017

by Marco Arena

From the article:

At the beginning of December, on the 2nd, the Italian C++ Community hosted the C++ Day 2017 and about 110 people gather together...

CppCast Episode 129: C++ Tour, Compilers and FASTBuild with Arvid Gerstmann

Episode 129 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Arvid Gerstmann from Appico to talk about bringing his new C++ Tour project, building your own C Compiler, using FASTBuild and more.

CppCast Episode 129: C++ Tour, Compilers and FASTBuild with Arvid Gerstmann

by Rob Irving and Jason Turner

About the interviewee:

Arvid Gerstmann is a passionate programmer and computer enthusiast, with a focus on writing high-performance C++. His area of expertise include, but is not limited to, writing compilers, implementing the included standard libraries, and creating game engines and games. He is currently the CTO of Appico. If he is not programming, he enjoys reading books while drinking a nice cup of self-brewed coffee. He currently lives in the sunny Hamburg, Germany.

Summary of C++17 features

Slides from a talk about C++17 features 

Summary of C++17 features

by Bartlomiej Filipek

From the article:

How do you see the new C++ standard? Is it ok? Great? Meh? See my slides from the talk where I tried to answer this question.

MSVC code optimizer improvements in Visual Studio 2017 versions 15.5 and 15.3--Gratian Lup

An update on the significant progress the Visual C++ code optimizer made in the past year, focused mostly on the features released in the 15.3 and 15.5 versions:

MSVC code optimizer improvements in Visual Studio 2017 versions 15.5 and 15.3

by Gratian Lup

From the article:

Compared to VS2015 Update 3, VS2017 15.5 provides on average an 8.9% increase in runtime speed in the SPEC 2017 benchmark..