ACCU 2023 Registration is open -- ACCU

The registration for the upcoming ACCU 2023 conference from 2023-04-19 to 2023-04-22 has opened.

ACCU 2023 Registration is open

by ACCU

About the conference

Again we had the opportunity to assemble a great schedule by speakers from the community who want to share their experience!

Our this years keynote speakers are Björn Fahller, Dave Abrahams, Gail Ollis and Stephanie Brenham.

We have two days with full-day workshops before the conference by Mateusz Pusz, Mike Shah, Nico Josuttis, Peter Sommerlad and Vladimir Vishnevskii.

Again Gail Ollis will give an Early Career Day in colaboration with Chris Oldwood, Giovanni Asproni, Jez Higgins, Jon Skeet, Kevlin Henney and Roger Orr for a reduced fee.

Early bird rates apply until 23.59 GMT on Tuesday 28th February 2023.

 

Writing Functors with Boost.Lambda2 -- Richard Thomson

Utah C++ Programmers has released a new video:

Writing Functors with Boost.Lambda2

by Richard Thomson

From the video description:

Lots of standard algorithms require some sort of 'functor' or 'function object' in order to apply predicates and transforming functions to values. This makes the algorithms generic, but requires you to write your own function object classes or lambda functions, which can get a little noisy in the syntax.

Boost.Lambda2 is a library that allows you write lambda functions that look like simple expressions with placeholders for the arguments.

This month, Richard Thomson will give us a breakdown of the Lambda2 library in Boost that makes writing function objects simple and readable. We'll see how to use them with common standard algorithms before looking a little more deeply into how this library is implemented.

https://www.youtube.com/watch?v=3605p3oRwxY

Partial function application -- Rainer Grimm

PortraintRound-1.jpgAre you a library person (std::function, std::bind, std::bind_front) or a language person (lambdas, auto, currying)? So many tools to get the job done...

Partial function application

by Rainer Grimm

From the article:

A few weeks ago, I had a discussion with a few of my readers. One reader said that I should write about Partial Function Applications. Another reader mentioned that C++ does not support function applications. This is wrong. C++ supports Partial Function Application. Consequently, I am writing today about std::function, std::bind, std::bind_front, lambdas, auto, and currying.

Let me start with a bit of theory...

 

Using perfect (and imperfect) forwarding to simplify C++ wrapper classes -- Raymond Chen

Perfectly imperfect:

Using perfect (and imperfect) forwarding to simplify C++ wrapper classes

by Raymond Chen

From the article:

There may be cases where you have a C++ class that wants to wrap another C++ class that is contained as a member. ... It’s annoying that there’s so much boilerplate to do the method forwarding, and that we have to keep looking up the parameters and return types so that each forwarder has the correct signature. Fortunately, we can use perfect forwarding to write most of them for us: ...

I'll Build Myself -- Phil Nash

Screenshot_2023-01-02_112437.pngA new instant classic for the new year, by the great Phil Nash of C++ on Sea...

An interview that went viral -- Rainer Grimm

cpp.pngSending us straight into the new year with cash, cars, and games:

An interview that went viral

by Rainer Grimm

From the article:

I gave the interview for the e-finance-blog "efinancialcareers". I essentially stated the following:

  • C++ is heavily used in the finance industry, for game developers, and in the automotive industry.
  • When you want to learn C++, start at least with C++11.
  • C++ is often used to build infrastructure.
  • C++ is too big to fall.

... In total, I got almost 2000 comments. Today, I want to present the main points about the final interview, because this is my motivation for writing articles, posts, and books, recording videos, and teaching and mentoring C++...

Top 10 bugs found in C++ projects in 2022

New Year is coming! It means, according to tradition, it's time to recall 10 of the most interesting warnings that PVS-Studio found during 2022.

Top 10 bugs found in C++ projects in 2022

by Vladislav Stolyarov

From the article:

Here the analyzer detected that a function, marked as noexcept, calls a function that throws an exception. If an exception arises from the nothrow function's body, the nothrow function calls std::terminate, and the program crashes. It could make sense to wrap the setName function in the function-try-block and process the exceptional situation there — or one could use something else instead of generating the exception.

libstdc++ gets C++20 chrono

Screenshot_2022-12-24_094211.pngImagine Jonathan Wakely in a red suit with his helper elves, delivering presents:

libstdc++ gets C++20 <chrono>

As seen on Reddit:

It looks like Jonathan Wakely has just today contributed a huge amount of effort towards <chrono>.

He's added the time zones, leap seconds, all that good stuff.

He's even added GDB pretty printers for inevitable date time debugging!

And these features are supported in <format>, which libstdc++13 has, if you weren't already aware. He's also made many other various improvements. Lets give a round of applause to Jonathan Wakely!

Using modules in the big three compilers

With detailed step by step instructions on how to make it work...

Using modules in the big three compilers: a small experiment

 From the article:

The goal of my experiment was to see how easy it is to write code that a) uses C++20 modules, b) can be compiled by GCC, Clang and MSVC without using conditional compilation, c) imports something from the standard library, d) exports at least one templated function, e) has a peculiarity that makes the module harder to find (in my case, the module is named b but the file that contains it is named a.cppm).

The experiment sort of succeeded...