Modern C++ Features – keyword `noexcept`—Arne Mertz

Explications of the noexcept keyword:

Modern C++ Features – keyword `noexcept`

by Arne Mertz

From the article:

I have written about handling exceptions some time ago, and about the levels of exception safety last week. What I have not touched yet are exception specifications. I will catch up on those with this post.

C++98 had the possibility to denote the types of exceptions that could be thrown from a given function by using throw(<exception list>). In theory, the runtime had to check if any exception emitted by the function was indeed in that list or derived from one of the types in the list. If it wasn’t, the handler std::unexpected would be called...

C++ User Group Meetings in January

The monthly update of C++ User Group Meetings at Meeting C++:

C++ User Group Meetings in January 2016

by Jens Weller

From the article:

The monthly overview on upcoming C++ User Group meetings! There is a new C++ User Group in Iasi, Romania and a lot of C++ User Groups which are meeting in January!

Maybe you want to start a C++ User Group in 2016? Also feel free to contact me on the topic!

C++Now 2016 Call for Submissions is Live

C++Now 2016 will be held in Aspen, May 9–14, 2016.cpp_Now.png

C++Now 2016 Call for Submissions

From the invitation:

Building upon the resounding success of previous BoostCon and C++Now conferences, C++Now 2016 will present leading speakers from the whole C++ community.

The C++Now Conference is dedicated to discussion and education about C++, an open and free language and standard.  Our Conference will focus on discussion and education about open source software usage and developments in the C++ developer and user community. To reflect the breadth of the C++ and Boost communities, the conference includes sessions aimed at three constituencies: C++ and Boost end-users, hard-core library and tool developers, and researchers pushing the boundaries of computation. The program fosters interaction and engagement within and across those groups, with an emphasis on discussion.

As a multi-paradigm language, C++ is a melting pot with the most compelling ideas from other programming communities blending in powerful ways. Historically, some of the most popular sessions at C++Now have highlighted these concepts, from DSLs to functional programming to transactional memory and more.  Bring your C#, Python, Ruby or Haskell influences to bear in an environment that will broaden their exposure.

At C++Now 2016 we would like to focus on the now established C++11 and C++14 standards and how those standards shape C++’s future. However, by no means is this intended to restrict the topics of proposals we hope to see. Any other topic related to C++, as described below, is suitable for submission.

This year's window for submitting is shorter than normal. Submissions must be in by January 29th, less than four weeks away.


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.

} // good to go—by Scott Meyers

Scott, we have appreciated all you've contributed to C++ over many years. Your first book, first edition, got me and many others grounded in C++. Thanks for all the pearls of wisdom, and "never say never"... perhaps we will enjoy new nuggets again!

For now, thanks for the kind observations about the worldwide C++ community today:

} // good to go

by Scott Meyers

From the article:

I'm only mostly retiring from C++. I'll continue to address errata in my books, and I'll remain consulting editor for the Effective Software Development Series. I may even give one more talk...