Product News

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.


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.

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...

Introducing Conduit for C++: Lazy Sequences Using the Coroutine TS—Buckaroo

It is worth looking at it.

Introducing Conduit for C++: Lazy Sequences Using the Coroutine TS

by Buckaroo

From the article:

Conduit is a new library that leverages the Coroutine TS to introduce lazy sequences to C++.

Lazy sequences are an idea that’s very popular in the functional-programming community, but less common in the C++ world.

Simply put, a lazy sequence is one where the elements are computed as they are requested, rather than in advance.
This can lead to big efficiency gains since you only perform the computation required. It also allows you to represent infinite sequences, which of course could never fit into a vector!

Let’s see how Conduit works with some simple examples…

PVS-Studio 6.26 Released

This new release included many interesting improvements related to analysis of C and C++ code, about which we'd like to tell our users.

PVS-Studio 6.26 Released

by Andrey Karpov

From the article:

A developer believes that this is a bug in the compiler. Nevertheless, it is the author of the code who is wrong. The function does not work correctly due to the fact that undefined behavior occurs in it. The compiler follows that in the r variable a certain sum is calculated. Overflow of the r variable must not happen. Otherwise, it is undefined behavior, which doesn't have to be considered or taken into account by a compiler. So, the compiler thinks that since the value of r variable after ending the loop cannot be negative, then r & 0x7fffffff operation is not needed to reset the sigh bit and the compiler just returns the value of r variable from the function.


JSON for Modern C++ version 3.3.0—Niels Lohmann

Are you using it?

JSON for Modern C++ version 3.3.0

by Niels Lohmann

From the article:

This release adds support for GCC 4.8. Furthermore, it adds a function get_to to write a JSON value to a passed reference. Another topic of this release was the CMake support which has been overworked and documented.

Besides, a lot of bugs have been fixed and slight improvements have been made. All changes are backward-compatible...

CLion started 2018.3 EAP by adding initial remote dev support

CLion started 2018.3 Early Access Program with one of the most awaited feature request – remote development support

Stay local, let your IDE do remote work for you!

by Anastasia Kazakova

From the article:

We’ve started with a particular set-up, though we do plan to cover and come to up with more cases in the future. So we are calling the current support state – initial:

  • Local client machine: Unix-like (macOS, Linux)
  • Remote host: Linux
  • Sources location: originally on the local host, CLion will synchronize to the remote machine for you
  • Project model: only CMake projects
  • rsync is required to be installed on a remote host