January 2016

A flexible lexicographical comparator for C++ structs--Björn Fahller

An interesting article:

A flexible lexicographical comparator for C++ structs

by Björn Fahller

From the article:

We've all hand crafted comparison operators for structs with many members, and we've all cursed the tedium. It's all right for equality comparison, but lexicographical ordering relations is a different story when there are more than two members.

Hopefully all C++ developers have by now learned about the std::tie()-idiom.

struct S
{
  int a;
  int b;
  int c;
};

bool operator<(const S& lh, const S& rh)
{
  return std::tie(lh.a, lh.b, lh.c)
       < std::tie(rh.a, rh.b, rh.c);
}

Levels of Exception Safety--Arne Mertz

A nice introduction to C++ exceptions:

Levels of Exception Safety

by Arne Mertz

From the article:

Exceptions are part of C++. They are thrown by the standard library classes, and sometimes even if we are not really using the standard library. So, unless we are in a very restrictive environment like embedded programming and have exceptions disabled in the compiler, we need to be prepared and deal with the fact that exceptions simply can happen.

Starting a tech startup with C++ -- James Perry

A nice and short (5-minute read) entrepreneur's perspective about technology choices while starting a modern web company, with nice shout-outs to Folly, Proxygen, and Wangle:

Starting a tech startup with C++

by James Perry

From the article:

A lot of my peers think it is bizarre that I am building a cloud service with C++ and not with a dynamic language — such as Ruby or Python — that provides high productivity to ship quickly.

It started to question my own judgement to use C++ and I decided to research whether it is good idea or not.

Interlude (a C++ 2015 retrospective) -- Agustín "K-ballo" Bergé

kballo2015.PNGAs we enter 2016, here is another reminder of just how much has happened for C++ in just the past year:

Interlude (a C++ 2015 retrospective)

by Agustín "K-ballo" Bergé

From the article:

One year down the road, 2015 has gone by but not without modifications to the C++ lands. Several Technical Specification (TS) documents were published, and heavy work continues to go into both existing and new ones. Meanwhile, work is underway for what it is intended to be C++17...

... During 2015, the C++ lands grew bigger at an outstanding rate! As the TS model -- which allows to decouple and publish work independently from the standard -- is proving to be a success, 2016 it's certainly looking to be a good year for C++.

CppCast Episode 39: Transducers with Juan Pedro Bolivar Puente

Episode 39 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Juan Pedro Bolivar Puente to discuss Transducers and the Atria library.


CppCast Episode 39: Transducers with Juan Pedro Bolivar Puente

by Rob Irving and Jason Turner

About the interviewee:

Juanpe is a Spanish software engineer currently based in Berlin, Germany. Since 2011 he has worked for Ableton, where he has helped building novel musical platforms like Push and Live and where he coordinates the "Open Source Guild" helping the adoption and contribution to FLOSS. He is most experienced in C++ and Python and likes tinkering with languages like Haskell or Clojure. He is an advocate for "modern C++" and pushes for adoption of declarative and functional paradigms in the programming mainstream. He is also an open source activist and maintainer of a couple of official GNU packages like Psychosynth which introduces new realtime audio processing techniques leveraging the newest C++ standards.