November 2018

The Amazing Performance of C++17 Parallel Algorithms, is it Possible?--Bartlomiej Filipek

Are you using it?

The Amazing Performance of C++17 Parallel Algorithms, is it Possible?

by Bartlomiej Filipek

From the article:

With the addition of Parallel Algorithms in C++17, you can now easily update your “computing” code to benefit from parallel execution. In the article, I’d like to examine one STL algorithm which naturally exposes the idea of independent computing. If your machine has 10-core CPU, can you always expect to get 10x speed up? Maybe more? Maybe less? Let’s play with this topic.

Sourcetrail 2018.4 released

Sourcetrail is a cross-platform visual source explorer based on LLVM/Clang LibTooling

Sourcetrail 2018.4 released

by Eberhard Gräther

From the article:

Sourcetrail 2018.4 features big improvements on indexing performance and reduced memory consumption. The new tab bar in the application window allows for opening multiple symbols simultaneously, just like in a web browser. Also, new type-use edges were added to the graph visual, to make exploration of types easier when templates are involved.

A beginner's look at smart pointers in modern C++

New (!) ways of memory management.

A beginner's look at smart pointers in modern C++

by Triangles @ Internal Pointers

From the article:

Pointers in C and C++ languages are wild beasts. They are extremely powerful, yet so dangerous: a little oversight may wreak havoc on your whole app. Smart pointers were born to fix such annoyances. They provide automatic memory management: when a smart pointer is no longer in use, that is when it goes out of scope, the memory it points to is deallocated automatically.


Trip report: Fall ISO C++ standards meeting (San Diego) -- Herb Sutter

Fresh from last week's standards meeting:

Trip report: Fall ISO C++ standards meeting (San Diego)

by Herb Sutter

From the article:

On Saturday November 10, the ISO C++ committee completed its fall meeting in San Diego, California, USA, hosted with thanks by Qualcomm. This was the biggest ISO C++ meeting in our 29-year history, with some 180 people at the meeting, representing 12 nations...

Because this is one of the last meetings for adding features to C++20, we gave priority to proposals that might make C++20, and we adopted a number of them for C++20...

HPX V1.2 released -- STE||AR Group

The STE||AR Group has released V1.2 of HPX -- A C++ Standard library for parallelism and concurrency.

HPX V1.2 Released

The newest version of HPX (V1.2) is now available for download! Please see here for the release notes. This release is the first in our more frequent release schedule. We are aiming to produce one release every six months in an effort to get new features and stable releases out to users more quickly.

    HPX exposes an API fully conforming to the parts of the C++11/C++14/C++17 standards that are related to parallelism and concurrency, extended and applied to distributed and heterogeneous computing, and aligned with the ongoing standardization discussions.

    HPX is a general purpose parallel C++ runtime system for applications of any scale. It implements all of the related facilities as defined by the C++ Standard. As of this writing, HPX provides the only widely available open-source implementation of the new C++17 parallel algorithms. Additionally, HPX implements functionalities proposed as part of the ongoing C++ standardization process, such as large parts of the C++ Concurrency TS, Parallelism TS V2, data-parallel algorithms, executors, and many more. It also extends the existing C++ Standard APIs to the distributed case (e.g. compute clusters) and for heterogeneous systems (e.g. GPUs).
    HPX seamlessly enables a new asynchronous C++ Standard Programming Model which tends to improve the parallel efficiency of our applications and helps reducing complexities usually associated with parellism and concurrency.


2018 San Diego ISO C++ Committee Trip Report

The report is here!

2018 San Diego ISO C++ Committee Trip Report

From the article:

The ISO C++ Committee met in San Diego, California ���� last week to continue work on the next International Standard (IS), C++20. This meeting was the last meeting to consider new proposals for C++20, but existing proposals like modules (on track) and coroutines (questions remain) that are in flight but not merged can still make C++20. We’ll make our final decisions about major language features at the next meeting.

How to Retrieve the Firsts from a Collection of Pairs


How to Retrieve the Firsts from a Collection of Pairs

by Jonathan Boccara

From the article:

When using the STL, there is a use case that pops up every now and then and that often causes more trouble than necessary: if we have a collection of pairs, like an std::vector of pairs, or simply a std::map, how can we retrieve the collection of the first elements of each item in the collection?

Use the official range-v3 with MSVC 2017 version 15.9--CoderCasey

Everything is in the title.

Use the official range-v3 with MSVC 2017 version 15.9

by CoderCasey

From the article:

We’re happy to announce that the ongoing conformance work in the MSVC compiler has reached a new milestone: support for Eric Niebler’s range-v3 library. It’s no longer necessary to use the range-v3-vs2015 fork that was introduced for MSVC 2015 Update 3 support; true upstream range-v3 is now usable directly with MSVC 2017.

CopperSpice: Sequencing

New video on the CopperSpice YouTube Channel:


by Barbara Geller and Ansel Sermersheim

About the video:

This video discusses sequencing and the ordering of expressions. We look at how the idea of sequence points was redesigned as the more general system of sequencing in C++11 and how new sequence rules were added in C++17 to further constrain expression evaluation. We also show how a detailed understanding of side effects and their interaction with sequencing is required to avoid undefined behavior.

Please take a look and remember to subscribe!