Ranges: the STL to the Next Level--Jonathan Boccara

Ranges are coming!

Ranges: the STL to the Next Level

by Jonathan Boccara

From the article:

The C++ Standard Template Library (STL) is a fantastic tool for making code more correct and expressive. It is mainly composed of two parts:

  • The containers, such as std::vector or std::map for instance,
  • The algorithms, a fairly large collection of generic functions that operate amongst others on containers. They are mostly found under the algorithm header.

CppCast Episode 85: Library Working Group and libc++ with Marshall Clow

Episode 85 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Marshall Clow to talk about his role on the C++ Standards Committee's Library Working Group, libc++, constexpr-ing all the things and more.

CppCast Episode 85: Library Working Group and libc++ with Marshall Clow

by Rob Irving and Jason Turner

About the interviewee:

Marshall is a long-time LLVM and Boost participant. He is a principal engineer at Qualcomm, Inc. in San Diego, and the code owner for libc++, the LLVM standard library implementation. He is also the chairman of the Library Working Group of the C++ standards committee. He is the author of the Boost.Algorithm library and maintains several other Boost libraries.

Alternative to select-many bitmask -- Krzysztof Ostrowski

Classic interfaces that use bitmask to select many properties at once can be hard to use and very easy to break.

Alternative to select-many bitmask

by Krzysztof Ostrowski

From the article:

Suppose we have an interface that returns some value depending on combination of other values, and we would like get resource of some type R that is common for Alice and Bob. Here is our interface:

R query(std::uint32_t bitmask);

First question arises quickly: what to put into bitmask? There are plenty of values of type uint32_t!

Multiple possible ways to fix our interface and make it much easier to use exist. We will consider three of them.

Template argument deduction for class template constructors -- Simon Brand

Showing how to use C++17 template argument deduction for constructors to get rid of those pesky make functions.

Template argument deduction for class template constructors

by Simon Brand

From the article:

Have you ever found yourself writing std::make_pair or std::make_move_iterator and wondering why we need a helper function to create these objects for us? The answer is a lack of template argument deduction for class template constructors.

[...]

Fortunately, this feature is coming in C++17!

Building a safety critical memory manager for self driving cars -- Illya Rudkin

What does it take to build a C++ memory manager for safety critical applications such as autonomous vehicles?

Codeplay's Safety-Critical Memory Manager

by Illya Rudkin

From the article

In my experience, when implementing an application, the memory management part of its design is very often overlooked. That is also the case when considering the design for a Safety-Critical (SC) system. This blog post talks about why a memory manager should be considered in the design, especially for an SC system, and why the designers of such systems should consider implementing it first, before doing anything else.

Codeplay has created a Safety-Critical Memory Manager (SCMM) as part of its strategy to build an SC tool set, including implementations of open standards (such as OpenCL) for building artificial intelligence in automotive systems. We believe that an SCMM is a fundamental foundation stone to help us achieve and verify the safety goals for our systems in different problem domains.

 

How PVS-Studio does the bug search: methods and technologies

PVS-Studio is a static code analyzer, that searches for errors and vulnerabilities in programs written in C, C++ and C#. In this article, I am going to uncover the technologies that we use in PVS-Studio analyzer. In addition to the general theoretical information, I will show practical examples of how certain technology allows the detection of bugs.

How PVS-Studio does the bug search: methods and technologies

by Andrey Karpov

From the article:

The definition of the pattern looks quite simple, but in practice the implementation of the diagnostic is quite complicated. It's not enough just to analyze only "#define RShift(a) a >> 3". If warnings are issued for all strings of this kind, there will be too many of them. We should have a look at the way the macro expands in every particular case, and try to define the situations where it was done intentionally, and when the brackets are really missing.