Meeting 118 (7 Jan 2021)

Firsts in 2020 (or, A little dose of good news)

C++20 ISO standard published

C++ at the end of 2020

B. Stroustrup on The Continuing Evolution of C++

No Diagnostic Required podcast from JetBrains

Concepts appreciation thread

C++ executors

Do you use C++ in your day job? If so, what did it take to get there?

Easily currying functions in C++

 1// Existing, non-curried function
 2auto f(int a, int b, int c) noexcept -> int {
 3    return a * b * c;
 4}
 5
 6auto g = fn::curry(f); // g is the curried form of f
 7
 8int main() {
 9    return g(2)(5)(10); // returns 100
10}

C++ and passing by value

Cheerp 2.6 rc1: C++ compiled for the Web

repr: return printable value

The problem with C

Turbo Vision

A modern port of Turbo Vision 2.0, the classical framework for text-based user interfaces. Now cross-platform and with Unicode support.

{width=70%}

Fold expressions work inside constraints

1template <template <typename> class FooT, typename... T>
2requires (... && Bar<FooT<T>>) struct Baz {};

Without fold expressions:

1template <template <typename> class FooT, typename... T>
2requires([]() {
3  std::array arr = std::array{Bar<FooT<T>>...};
4  return std::reduce(arr.begin(), arr.end(), true, std::logical_and<bool>{});
5}()) struct Baz {};

consteval-huffman

A C++20 utility for compressing string literals at compile-time to save program space. The compressed data can be decompressed at run-time through the use of a decoder that follows std::forward_iterator.

1auto data = "This is my string of data"_huffman;

Taskflow 3.0.0

A General-purpose Parallel and Heterogeneous Task Programming System

Project from scratch in C++ (for beginners)

Game dev C++ vs Regular C++

Some companies are stuck on the 98 standard, may God have pity on their souls, and others have weird requirements to avoid things because a manager had an issue with them 10 years ago. =>

Bona - A C++20 based modern file information viewer

Obsolete function will stay