CppCon 2019 A C++ Approach to Physical Units--Mateusz Pusz

Registration is now open for CppCon 2021, which starts on October 24 and will be held both in person and online. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from our most recent in-person conference in 2019 and our online conference in 2020. Here’s another CppCon talk video we hope you will enjoy – and why not register today for CppCon 2021 to attend in person, online, or both!

A C++ Approach to Physical Units

by Mateusz Pusz

Summary of the talk:

This talk presents a new C++20 library for Dimensional Analysis and Physical Units handling. The essential requirements of the library are user-friendliness, compile-time safety, no runtime overhead, and easy extensibility. The syntax of the library is built around a few easy to learn concepts and strictly checked at compile time, which makes it easy to learn and very forgiving for the novice.

The talk presents motivating examples of why we need such a library, compares the library with other similar products on the market, describes the basic usage and interface, and highlights the benefits of the design choices made.

The talk is also a great showcase of practical usage of new C++20 features that make the library interface easier to use, maintain, and extend. Concepts, contracts, class types provided as non-type template parameters, and other C++20 features make a huge difference in how we can design Modern C++ code.

C++20 Modules — Complete Guide--Šimon Tóth

Are you ready to use them?

C++20 Modules — Complete Guide

by Šimon Tóth

From the article:

Compilers and build systems are slowly starting to support C++20 modules. Perfect time for you to read this guide and benefit from the massive compilation speedups. This article reflects the state as of September 2021...

Ordering asynchronous updates with coroutines--Raymond Chen

Will you use it?

Ordering asynchronous updates with coroutines, part 1, part 2, part 3, part 4, part 5

by Raymond Chen

From the article:

I opined some time ago on the perils of holding a lock across a coroutine suspension point. But say you have a bunch of asynchronous activity that you want to serialize. How can you do that without a lock?

There are a few different scenarios in which you may need to protect asynchronous activity. We’ll look at them over the next few days...

Audio Programming with BASS -- Richard Thomson

Utah C++ Programmers has released a new video.

Audio Programming with BASS

by Richard Thomson

From the video description:

This month, Richard Thomson will give us an introduction to audio programming with the BASS library.  Specifically, we'll look at this library with an eye towards playing back MOD music and triggering events during playback in response to interesting things happening during the score.

BASS is an audio library for use in software on several platforms. Its purpose is to provide developers with powerful and efficient sample, stream (MP3, MP2, MP1, OGG, WAV, AIFF, custom generated, and more via OS codecs and add-ons), MOD music (XM, IT, S3M, MOD, MTM, UMX), MO3 music (MP3/OGG compressed MODs), and recording functions. All in a compact DLL that won't bloat your distribution.

https://www.youtube.com/watch?v=-d4aDtBWB08

Meeting C++ 2021: choosing the online platform

Meeting C++ reveals on which online platform the conference and the online C++ User Group will be hosted this year.

Choosing Hubilo as an online platform for Meeting C++ 2021

by Jens Weller

From the article:

During July and August I did compare many online platforms, to choose the one to host this years online conference and the events of Meeting C++ online in. The winner is Hubilo.

Its been a difficult and time consuming process to compare the various platforms and get a feel for what online events will have a look and feel in 21/22 when choosing a certain platform. I'd like to be able to host all formats of the online User Group in one platform: the talks, the panels and especially the online fairs for C++ jobs/recruiting and tooling. This years conference will host all these event types too!

Meeting C++ 2021: looking for sponsors

Meeting C++ has opened this years call for sponsors

Meeting C++ 2021: looking for sponsors

by Jens Weller

From the article:

With the online platform being selected, its finally time to open the call for sponsors for Meeting C++ 2021!

Sponsoring is an easy way to support the work of Meeting C++, as my work is mostly funded through the ticketsales and sponsorships of the yearly Meeting C++ conference. So maybe your employer is interested in sponsoring Meeting C++ 2021?

CppCon 2020 Building an Intuition for Composition--Sy Brand

Registration is now open for CppCon 2021, which starts on October 24 and will be held both in person and online. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from our most recent in-person conference in 2019 and our online conference in 2020. Here’s another CppCon talk video we hope you will enjoy – and why not register today for CppCon 2021 to attend in person, online, or both!

Building an Intuition for Composition

by Sy Brand

Summary of the talk:

If you're fed up of reading articles about "monads" and "endofunctors" that don't give you an understanding of how they can actually help your C++ programming, this talk is for you.

Function and data composition are becoming increasingly important in C++ due to features like ranges, continuable futures, and new error handling techniques. Using real-world examples and C++ programming idioms, I'll help you build an intuition for the mathematical concepts which underpin these so that you can make the most of them in your code and build your own abstractions built on the same foundations.

Why do you need the MISRA Compliance report and how to generate one in PVS-Studio?

If you are strongly interested in MISRA and would like to understand whether your project meets one of the MISRA association's standards, there is a solution. It's name is MISRA Compliance.

Why do you need the MISRA Compliance report and how to generate one in PVS-Studio?

by Nikolay Mironov

From the article:

To make this simpler, let's take rule 1.1 that has the standard value of the category equal to Required. If you look at the table, you can see that acceptable compliance values for Required are Compliance or Deviations (I'll talk more about the meaning of these statuses later). This means that if your project complies with rule 1.1, or if it complies with this rule with some deviations - everything is fine and you can go to the next rule. If you get at least one hit in Violations or Disapplied, then the project does not comply with MISRA C 2012. If all rules have acceptable values only, congratulations! Your project complies with the MISRA C 2012 standard. If you have a hit in the red zone (the table above), you do not comply with the standard.

2021-08 Mailing Available

The 2021-08 mailing of new standards papers is now available.

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
N4895 Concurrency TS2 Michael Wong 2021-08-22 2021-08   All of WG21
P1018R12 C++ Language Evolution status  pandemic edition  2021/06–2021/08 JF Bastien 2021-08-02 2021-08 P1018R11 EWG Evolution,All of WG21
P1072R9 basic_string::resize_and_overwrite Chris Kennelly 2021-08-14 2021-08 P1072R8 LWG Library
P1169R2 static operator() Barry Revzin 2021-08-14 2021-08 P1169R1 EWG Evolution
P1206R5 Conversions from ranges to containers Corentin Jabot 2021-08-01 2021-08 P1206R4 LEWG Library Evolution
P1206R6 Conversions from ranges to containers Corentin Jabot 2021-08-03 2021-08 P1206R5 LEWG Library Evolution
P1664R5 reconstructible_range - a concept for putting ranges back together JeanHeyd Meneide 2021-08-16 2021-08 P1664R4 SG9 Ranges,LEWG Library Evolution
P1673R4 A free function linear algebra interface based on the BLAS Mark Hoemmen 2021-08-14 2021-08 P1673R3 LEWG Library Evolution
P1885R6 Naming Text Encodings to Demystify Them Corentin Jabot 2021-08-14 2021-08 P1885R5 LEWG Library Evolution
P2047R2 An allocator-aware optional type Nina Ranns 2021-08-13 2021-08 P2047R1 LEWG Library Evolution
P2093R8 Formatted output Victor Zverovich 2021-08-15 2021-08 P2093R7 SG16 Unicode,LEWG Library Evolution
P2280R3 Using unknown references in constant expressions Barry Revzin 2021-08-18 2021-08 P2280R2 EWG Evolution
P2286R2 Formatting Ranges Barry Revzin 2021-08-15 2021-08 P2286R1 LEWG Library Evolution
P2291R2 Add Constexpr Modifiers to Functions to_chars and from_chars for Integral Types in Header Daniil Goncharov 2021-08-17 2021-08 P2291R1 LEWG Library Evolution,LWG Library
P2361R2 Unevaluated strings Corentin Jabot 2021-08-13 2021-08 P2361R1 SG16 Unicode,SG22 Compatability,EWG Evolution
P2362R2 Remove non-encodable wide character literals and multicharacter wide character literals Peter Brett 2021-07-29 2021-08 P2362R1 EWG Evolution
P2370R1 Stacktrace from exception Andrei Nekrashevich 2021-08-15 2021-08 P2370R0 LEWG Library Evolution,LWG Library
P2372R2 Fixing locale handling in chrono formatters Victor Zverovich 2021-08-14 2021-08 P2372R1 LWG Library
P2387R1 Pipe support for user-defined range adaptors Barry Revzin 2021-08-14 2021-08 P2387R0 LEWG Library Evolution
P2388R1 Minimum Contract Support: either Ignore or Check_and_abort Andrzej Krzemieński 2021-08-15 2021-08   SG21 Contracts
P2393R1 Cleaning up integer-class types Tim Song 2021-08-06 2021-08 P2393R0 LWG Library
P2414R1 Pointer lifetime-end zap proposed solutions Paul E. McKenney 2021-08-13 2021-08 P2414R0 EWG Evolution
P2415R1 What is a view? Barry Revzin 2021-08-15 2021-08 P2415R0 LEWG Library Evolution
P2418R0 Add support for std::generator-like types to std::format Victor Zverovich 2021-08-08 2021-08   LEWG Library Evolution
P2419R0 Clarify handling of encodings in localized formatting of chrono types Victor Zverovich 2021-08-12 2021-08   SG16 Unicode,LEWG Library Evolution
P2420R0 2021 Summer Library Evolution Polls Bryce Adelstein Lelbach 2021-08-03 2021-08   LEWG Library Evolution
P2423R0 C Floating Point Study Group Liaison Report Rajan Bhakta 2021-08-04 2021-08   SG6 Numerics,SG22 Compatability
P2425R0 Expression Function Body Mihail Naydenov 2021-08-22 2021-08   EWGI SG17: EWG Incubator
P2428R0 Slides: BSI issues with P2300 Gašper Ažman 2021-08-16 2021-08   LEWG Library Evolution