Overload 150 is now available

ACCU’s Overload journal of April 2019 is out. It contains the following C++ related articles.

Overload 150 is now available

From the journal:

This means war!.
Careless use of language can upset people. Frances Buontempo asks what we can do to make the developer experience better.

NullableAttribute and C# 8.
C# 8 will bring many new features. Jon Skeet investigates the metadata representation of Nullable Reference Types.

lvalues, rvalues, glvalues, prvalues, xvalues, help!.
C++11 introduced new value categories. Anders Schau Knatten explains his way of thinking about them.

Modern SAT solvers: fast, neat and underused (part 1 of N).
SAT solvers can quickly find solutions to Boolean Logic problems. Martin Hořeňovský demonstrates how this can be used to solve arbitrary Sudoku puzzles.

The Duality….
Genetic algorithms can find solutions that other algorithms might miss. Anders Modén discusses their use in conjunction with back-propagation for finding better solutions.

Blockchain-Structured Programming.
Coins are a wedge-shaped piece used for some purpose. Teedy Deigh shares her angle on the technology underpinning crypto-currencies.

The BooSTL Algorithms: Boost Algorithms That Extend the STL (3/3)--Jonathan Boccara

The final article.

The BooSTL Algorithms: Boost Algorithms That Extend the STL (3/3)

by Jonathan Boccara

From the article:

The BooSTL algorithms are what we can call the Boost algorithms which are in the same spirit as those of the STL. They encapsulate operations on collections, and being able to use them allows to write (or re-write) more expressive code. To cover all their contents, we split up the articles of the BooSTL into three parts:

  • the BooSTL algorithms on sorting and partitioning,
  • the BooSTL algorithms on searching,
  • the other BooSTL algorithms.

So here we go to cover the rest of the BooSTL algorithms which are not in sorting, partitioning nor searching.

Quick Q: C++ template typedef

Quick A: Use the normal template declaration.

Recently on SO:

C++ template typedef

C++11 added alias declarations, which are generalization of typedef, allowing templates:

template <size_t N>
using Vector = Matrix<N, 1>;

The type Vector<3> is equivalent to Matrix<3, 1>.

The BooSTL Algorithms: Boost Algorithms That Extend the STL (2/3)--Jonathan Boccara

The series continues.

The BooSTL Algorithms: Boost Algorithms That Extend the STL (2/3)

by Jonathan Boccara

From the article:

One good way to extend our knowledge beyond the STL is to learn the Boost STL-like algorithms. I like to call them the BooSTL algorithms. To cover all the contents in this algorithms library, we have chunked up the story into three parts:

  • the BooSTL algorithms on sorting and partitioning,
  • the BooSTL algorithms on searching,
  • the other BooSTL algorithms.

After seeing the BooSTL algorithms on sorting and partitioning, we are now going to focus on BooSTL algorithms on searching...

The BooSTL Algorithms: Boost Algorithms That Extend the STL (1/3)--Jonathan Boccara

No need to do them yourself.

The BooSTL Algorithms: Boost Algorithms That Extend the STL (1/3)

by Jonathan Boccara

From the article:

The STL features a proud 105 algorithms, but that is by no means all the algorithms there is in C++.

There are many ways to extend the STL. One of them is to include the STL-like algorithms that are in Boost, which I like to call the BooSTL algorithms!

CppCast Episode 192: Reverse Engineering C++ with Gal Zaban

Episode 192 of CppCast the first podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Gal Zaban to talk about Reverse Engineering C++.

CppCast Episode 192: Reverse Engineering C++ with Gal Zaban

by Rob Irving and Jason Turner

About the interviewee:

Gal is currently working as a Security Researcher. Her passion is Reverse Engineering with a particular interest in C++ code. In her spare time, when not delving into low-level research, she designs and sews her own clothes and loves to play the Clarinet.

CopperSpice: GPU, Pipeline, and the Vector Graphics API

New video on the CopperSpice YouTube Channel:

GPU, Pipeline, and the Vector Graphics API

by Barbara Geller and Ansel Sermersheim

About the video:

In this video, we continue our exploration of modern graphics technoloy. We look at the differences between current vector drawing API vendors, and explore the idea of fixed versus programmable rendering pipelines. We also explain the history of the most modern graphics API currently avaliable, Vulkan.

Please take a look and remember to subscribe!

C++Now 2019 Schedule Announcement

C++Now 2019 will be held in Aspen, Colorado, from May 5-10. Registration is still open!

Schedule Announced: Over 50 Presentations in 3 Tracks

From the announcement:

This year we have 3 tracks with over 50 C++-focused presentations including keynotes, lightning talks, panels, and the “Library in a Week” hands-on workshop.

If you are still on the fence about whether to join us, now is a good time to make up your mind. Check out the list of session tags, the conference schedule, and the attendee video. The venue has a hard attendee limit and if the conference sells out (as it tends to do), your remaining option is to wait until 2020.

CLion 2019.1 release comes with ClangFormat and initial embedded dev support

As announced earlier, our main areas of focus this year are IDE performance, expanding Clangd leverage, and Embedded Development. This update makes headway in all three areas.

 

 

CLion 2019.1 is Here with Embedded Development, ClangFormat, Memory View, Injected languages, Custom Themes, and Much More

by Anastasia Kazakova

From the article:

  • CLion 2019.1 has taken a couple of first steps towards Embedded Development. They include integration with STM32CubeMX and OpenOCD support.
  • Its C++ refactorings Rename and Extract are now more accurate, and code highlighting has moved to Clangd to make the editor more responsive.
  • To help you follow your preferred coding style, CLion now integrates with the well-known ClangFormat tool and adds support for various C/C++ naming schemes.
  • For compilation database projects, it’s now possible to create build-system independent Targets and Run/Debug configurations. This also means that you can build your project from CLion with any build tool you prefer, including custom commands and scripts.
  • Debugger got Memory View, Disassembly View for LLDB and Mute Variables on stepping opportunity.
  • String literals with pieces of code in other languages (SQL, HTML, RegExp, etc.)can now be treated accordingly, thanks to injected languages feature.
  • The Rust plugin was updated: it got profiler tools on Linux and macOS and suggests out-of-scope items in completion and auto-import.

 

doctest -- The Fastest C++ Testing Framework -- version 2.3 released! -- Viktor Kirilov

doctest brings the ability of compiled languages such as D, Rust and Nim to write tests right next to the production code to C++.

doctest - "The Fastest C++ Testing Framework" - version 2.3 released

by Viktor Kirilov

From the article:

Version 2.3 brings an extensible reporter system and a few already implemented reporters with the framework - most importantly one for XML - vital for Continuous Integration (CI) workflows. Huge thanks to the Catch2 project for paving the way for single header testing libraries.