January 2020

POCO Release 1.10.0 Available

POCO 1.10.0 is now available:

POCO Release 1.10.0 available

by POCO Team

About the release

Release 1.10 is a major feature release, introducing C++14 support and the new JWT (JSON Web Token) library, as well as the PostgreSQL connector for the Data library. Other notable features are NTLM authentication support in the Net library and TLS 1.3 support in the NetSSL library. Please see the POCO blog for more details, and CHANGELOG for the full list of 60+ changes.

 

Decorating with a side effect -- Krzysztof Ostrowski

A taste of functional stack of effects.

Decorating with a side effect

by Krzysztof Ostrowski

From the article:

Logging is one of such overused features, that leads to costly side effects (consider distributed logging, a DLT, prevalent in automotive industry). This article describes a technique that is used to extract side effects brought by logging, and then compose with them back in a well defined manner.

C++20 Reference Card--Bartlomiej Filipek

The big ones.

C++20 Reference Card

by Bartlomiej Filipek

From the article:

While the C++20 Standard is still being finalised and polished, we know all of its core features. At first, the new specification of the language might sound complex and overwhelming. That’s why, if you want to have an overview of the core elements and get the bigger picture, you can have a look at my new reference card...

C++ Modules conformance improvements with MSVC in Visual Studio 2019 16.5--Cameron DaCamara

Did you try it yet?

C++ Modules conformance improvements with MSVC in Visual Studio 2019 16.5

by Cameron DaCamara

From the article:

C++20 is right around the corner. Along with the new standard comes the much anticipated Modules feature! The compiler team initially announced that we were working on the Modules TS back in 2017 and since then we have been hard at work improving the feature and improving compiler conformance around this feature. We finally feel it is time to share some of the progress we have made on the conformance front for Modules...

MSVC Backend Updates in Visual Studio 2019 Versions 16.3 and 16.4--Kevin Cadieux

Are you using it?

MSVC Backend Updates in Visual Studio 2019 Versions 16.3 and 16.4

by Kevin Cadieux

From the article:

Versions 16.3 and 16.4 of Visual Studio 2019 brought many new improvements in code generation quality, build throughput, and security. If you still haven’t downloaded your copy, here is a brief overview of what you’ve been missing out on...

How to Short-Circuit a Sequence of Operations with a Boolean Value--Jonathan Boccara

Boolean and bit operators are not the same.

How to Short-Circuit a Sequence of Operations with a Boolean Value

by Jonathan Boccara

From the article:

Interrupting a sequence of operations when one of them fails is a common problem in computer programming. There are plenty of elaborate ways to code that, ranging from exceptions to monads to static exceptions.

One of the techniques to stop such a sequence of operations that is not so sophisticated, but that can be found in existing code, is to use a boolean. This relies on each step producing a boolean flag to indicate if it succeeded or failed, and to stop executing steps at the first failure.

However, simple as it is, this technique can lead to code that doesn’t do with it looks like...

The C++ Lifetime Profile: How It Plans to Make C++ Code Safer--Daniel Martín

A way to make C++ safer.

The C++ Lifetime Profile: How It Plans to Make C++ Code Safer

by Daniel Martín

From the article:

High amounts of low-level systems are written in C++. Memory access in C++ is virtually unrestricted, which means that bugs in C++ programs can corrupt it and cause crashes or security problems. For this reason, we call C++ a memory-unsafe programming language — in contrast to memory-safe languages like Java, Rust, and Swift.

In this blog post, I’ll talk about the C++ Lifetime Profile, explaining what it is, how it intends to reduce the problems typically caused by the memory-unsafe characteristics of C++, what the status of the current implementation of the Lifetime Profile is, and what the current limitations are...