April 2018

March 2018 ISO C++ Meeting Trip Report (SG1: Concurrency and Parallelism)—Thomas Rodgers

The future is still getting closer.

March 2018 ISO C++ Meeting Trip Report (SG1: Concurrency and Parallelism)

by Thomas Rodgers

From the article:

This year’s Winter ISO C++ Standard Committee meeting was held in March in Jacksonville, Florida. A number of larger features, for which there is substantial interest but which are also difficult to get right, were discussed:

  • Concepts, along with Concept types from the Ranges TS; see P0898 and n4685
  • Modules; see n4689
  • Coroutines; see n4723
  • Networking; see n4711
  • Executors; see p0443

span lite: single-file header-only version of a C++20-like span for C++98, C++11…—Martin Moene

The view for any range.

span lite: single-file header-only version of a C++20-like span for C++98, C++11 and later

by Martin Moene

From the article:

span lite is a single-file header-only library to provide a bounds-safe view for sequences of objects. The library provides a C++20-like span for use with C++98 and later. If available, std::span is used, unless configured otherwise...

Exceptional exploration (1)—Lucian Radu Teodorescu

Are you exceptionally curios?

Exceptional exploration (1)

by Lucian Radu Teodorescu

From the article:

To use or not to use exceptions? That is the question.

And if you have hoped for a simple answer, this is not the right blog to read. On this blog, finding the truth is always a complex endeavor, it involves a complex mix of perspectives and a variety of interpretations. If you are into truthing, read on.

In this post we would only cover the performance aspects of it. A follow up post should discuss aspects like modifiability (how easy is to write error handling) and appropriateness of using exceptions.

CppCast Episode 147: C++ Patterns with Kevlin Henney

Episode 147 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Kevlin Henney to discuss C++ Patterns and things every programmer should know.

CppCast Episode 147: C++ Patterns with Kevlin Henney

by Rob Irving and Jason Turner

About the interviewee:

Kevlin Henney is an independent consultant, speaker, writer and trainer. His development interests are in patterns, programming, practice and process. He has been a columnist for a number of magazines and sites, including C++ Report and C/C++ Users Journal, and has been on far too many committees (it has been said that "a committee is a cul-de-sac down which ideas are lured and then quietly strangled"), including the the BSI C++ panel and the ISO C++ standards committee. He is co-author of A Pattern Language for Distributed Computing and On Patterns and Pattern Languages, two volumes in the Pattern-Oriented Software Architecture series. He is also editor of 97 Things Every Programmer Should Know and the forthcoming 97 Things Every Java Programmer Should Know. He lives in Bristol and online.

Announcing a single C++ library manager for Linux, macOS and Windows: Vcpkg—Eric Mittelette

Are you interested?

Announcing a single C++ library manager for Linux, macOS and Windows: Vcpkg

by Eric Mittelette

From the article:

At Microsoft, the core of our vision is “Any Developer, Any App, Any Platform” and we are committed to bringing you the most productive development tools and services to build your apps across all platforms. With this in mind, we are thrilled to announce today the availability of vcpkg on Linux and MacOS. This gives you immediate access to the vcpkg catalog of C++ libraries on two new platforms, with the same simple steps you are familiar with on Windows and UWP today...

Quick Q: How can unique_ptr have no overhead if it needs to store the deleter?

Quick A: The default deleter does not store anything.

Recently on SO:

How can unique_ptr have no overhead if it needs to store the deleter?

std::unique_ptr<T> is quite likely to be zero-overhead (with any sane standard-library implementation). std::unique_ptr<T, D>, for an arbitrary D, is not in general zero-overhead.

The reason is simple: Empty-Base Optimisation can be used to eliminate storage of the deleter in case it's an empty (and thus stateless) type (such as std::default_delete instantiations).

Keynotes at Meeting C++ 2018

Much to expect from this years set of Keynote speakers at Meeting C++ 2018

Keynotes at Meeting C++ 2018

by Jens Weller

From the article:

Two of them are well known for a long time in the C++ community as speakers and book authors, while Lisa can be seen as a newcomer. All three of them still have some time to think about what they'd like to talk about, I might give you more insights into the keynotes later this year.