CppCast Episode 131: C++ Object Model with Nicole Mazzuca

Episode 131 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Nicole Mazzuca to talk about the C++ Object Model, and some of the differences between Rust and C++.

CppCast Episode 131: C++ Object Model with Nicole Mazzuca

by Rob Irving and Jason Turner

About the interviewee:

Nicole is someone who's thought a bit too much about object models and error handling. She started in C, moved to Rust, and then fell into C++ a year ago. She also loves coffee, and latte art.

Boost 1.66 is out!

New version of boost!

Boost 1.66 is out!

From the article:

New Libraries

  • Beast: Portable HTTP, WebSocket, and network operations using only C++11 and Boost.Asio, from Vinnie Falco.
  • CallableTraits: A spiritual successor to Boost.FunctionTypes, Boost.CallableTraits is a header-only C++11 library for the compile-time inspection and manipulation of all 'callable' types. Additional support for C++17 features, from Barrett Adair.
  • Mp11: A C++11 metaprogramming library, from Peter Dimov.

...

Clang 5 in a Docker container for C++17 development--SolarianProgrammer

Very convenient to create a development environment without hassles.

Clang 5 in a Docker container for C++17 development

by SolarianProgrammer

From the article:

If you want to try the new C++17, using Clang in a Docker container, you are in the right place. Running Clang in a container has the advantage that it is light on resources and won’t mess with your underlying OS. The last point is especially important if your host operating system is macOS, on which it is a really bad idea to directly install a binary Clang other than the one that comes with Xcode. I’ve tested the approach presented in this article on Windows 10, macOS High Sierra and Ubuntu Linux.

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.