November 2018

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

Simple.

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:

Sequencing

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!

CppCast Episode 174: Learning C++ with Devon Labrie

Episode 174 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Devon Labrie to discuss his experience learning C++ at Augusta Tech and being a first time attendee at CppCon.

CppCast Episode 174: Learning C++ with Devon Labrie

by Rob Irving and Jason Turner

About the interviewee:

Devon is a 26 year old coming from a military family, he enjoys challenges physically and mentally, playing video games and creating them, learning, watching tv, puzzles, art, science, comedy, philosophy, programming and of course C++.

Using STL algorithms with cppcheck—Paul Fultz II

Making the code more expressive.

Using STL algorithms with cppcheck

by Paul Fultz II

From the article:

From Sean Parent’s C++ Seasoning talk, he explains how raw loops suffer from several issues:

  • Difficult to reason about and difficult to prove post conditions
  • Error prone and likely to fail under non-obvious conditions
  • Introduce non-obvious performance problems
  • Complicates reasoning about the surrounding code

Instead algorithms should be preferred, either using the algorithms in the standard library or writing a new algorithm. Even more so, Sean Parent suggests that all coding guildines should be replaceed with “No raw loops” in order to improve code quality...

Exploring Clang Tooling Part 3: Rewriting Code with clang-tidy—Stephen Kelly

The series continue.

Exploring Clang Tooling Part 3: Rewriting Code with clang-tidy

by Stephen Kelly

From the article:

In the previous post in this series, we used clang-query to examine the Abstract Syntax Tree of a simple source code file. Using clang-query, we can prototype an AST Matcher which we can use in a clang-tidy check to refactor code in bulk.

This time, we will complete the rewriting of the source code...

Modules Are Not Precompiled Headers—Guillaume Racicot

Interesting talk about modules.

Modules Are Not Precompiled Headers

by Guillaume Racicot

From the article:

Modules have been the subject of many controversies in the C++ community in the recent past and there seem to be some misconception floating around recently about modules. Important decisions will soon be made, and I wanted to clear some of the facts and raise potentially good questions about modules and the path to their adoption.

I do not want to argue about how modules should have been and what should have not been. Instead I want to talk tabout modules as they are today, in the merged proposal.