August 2022

The concept of smart pointer static_ptr in C++

In this article we are discussing a new smart pointer type – static_ptr. It is most similar to std::unique_ptr without dynamic allocations.

The concept of smart pointer static_ptr<T> in C++

by Evgeny Shulgin

From the article:

We can create the move_assigner structure in a similar way. We could also make copy_constructer and copy_assigner, but our implementation doesn't require them. In static_ptr, the copy constructor and copy assignment operator will be deleted (as in unique_ptr).

Lightning talks and 2 years of Meeting C++ online

Meeting C++ online celebrates its 2 years anniversary with lightning talks!

Lightning talks and 2 years of Meeting C++ online

by Jens Weller

From the article

Next week Meeting C++ online will host its first lightning talk session to celebrate its 2 year anniversary!

There are still some open spots, so if you want to submit your lightning talk, you still can! But yesterdays deadline already has given us enough talks to fill one hour easily. So join the event if you have time to attend next week wednesday!

Serialization with Boost.Serialization -- Richard Thomson

Utah C++ Programmers has released a new video:

Serialization with Boost.Serialization

by Richard Thomson

From the video description:

Many times you need a stable, versioned, archivable representation of your internal data structures. Serialization is one means of achieving this goal. Serialization is often used with REST APIs as a means of conveying data structures into and out of your application. XML and JSON formats are commonly used to encode your data structure. But serialization often is not just a data format.

How do you represent different versions of your data structures as they evolve over time? How do you ensure that old versions of your data structures interoperate with new versions of your data structures and vice-versa? While interoperability and backwards compatibility are an application responsibility, versioning itself is something you want from your serialization layer.

This month, Richard Thomson will give us an introduction to serialization via the Boost.Serialization library, one of the older and more mature boost libraries having first been contributed to Boost in 2002.

2022-08 Mailing Available

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


WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
N4914 WG21 2022-07 Admin telecon minutes Nina Ranns 2022-08-21 2022-08   All of WG21
N4915 Business Plan and Convener's Report: ISO/IEC JTC1/SC22/WG21 (C++) Herb Sutter 2022-07-20 2022-08   All of WG21
N4916 WG21 2022-07 Virtual Meeting Minutes of Meeting Nina Ranns 2022-08-12 2022-08   All of WG21
P0843R5 static_vector Gonzalo Brito Gadeschi 2022-08-14 2022-08 P0843R4 LEWG Library Evolution
P1255R9 A view of 0 or 1 elements: views::maybe Steve Downey 2022-08-15 2022-08 P1255R8 SG9 Ranges,LEWG Library Evolution
P2019R1 Usability improvements for std::thread Corentin Jabot 2022-08-09 2022-08 P2019R0 SG1 Concurrency and Parallelism
P2164R6 views::enumerate Corentin Jabot 2022-08-09 2022-08 P2164R5 SG9 Ranges,LEWG Library Evolution
P2264R4 Make assert() macro user friendly for C and C++ Peter Sommerlad 2022-08-08 2022-08 P2264R3 LEWG Library Evolution
P2477R3 Allow programmers to control coroutine elision Chuanqi Xu 2022-07-22 2022-08 P2477R2 EWG Evolution
P2511R2 Beyond operator(): NTTP callables in type-erased call wrappers Zhihao Yuan 2022-08-14 2022-08 P2511R1 LWG Library
P2517R1 Add a conditional noexcept specification to std::apply Hewill Kang 2022-08-21 2022-08 P2517R0 LEWG Library Evolution
P2537R1 Relax va_start Requirements to Match C JeanHeyd Meneide 2022-07-22 2022-08 P2537R0 LEWG Library Evolution
P2581R1 Specifying the Interoperability of Built Module Interface Files Daniel Ruoso 2022-07-28 2022-08 P2581R0 SG15 Tooling
P2587R2 to_string or not to_string Victor Zverovich 2022-08-09 2022-08 P2587R1 LWG Library
P2611R0 2022-07 Library Evolution Poll Outcomes Bryce Adelstein Lelbach 2022-07-27 2022-08   LEWG Library Evolution
P2620R1 Lifting artificial restriction on universal character names Corentin Jabot 2022-08-10 2022-08 P2620R0 SG16 Unicode,SG22 Compatability,EWG Evolution
P2621R1 UB? In my Lexer? Corentin Jabot 2022-08-09 2022-08 P2621R0 SG22 Compatability,EWG Evolution
P2623R1 implicit constant initialization Jarrad J. Waterloo 2022-08-14 2022-08 P2623R0 EWG Evolution
P2625R0 Slides: Life without operator() (P2511R1 presentation) Zhihao Yuan 2022-07-19 2022-08   LEWG Library Evolution
P2626R0 charN_t incremental adoption: Casting pointers of UTF character types Corentin Jabot 2022-08-09 2022-08   SG16 Unicode,LEWG Library Evolution
P2627R0 WG21 2022-07 Virtual Meeting Record of Discussion Nina Ranns 2022-08-12 2022-08   All of WG21
P2628R0 Extend barrier APIs with memory_order Gonzalo Brito Gadeschi 2022-08-11 2022-08   SG1 Concurrency and Parallelism
P2629R0 barrier token-less split arrive/wait Gonzalo Brito Gadeschi 2022-08-11 2022-08   SG1 Concurrency and Parallelism
P2630R0 Submdspan Christian Trott 2022-08-14 2022-08   LEWG Library Evolution
P2633R0 thread_local_inherit: Enhancing thread-local storage Justin Cooke 2022-08-21 2022-08   SG1 Concurrency and Parallelism,EWG Evolution
P2634R0 Allow qualifiers in constructor declarations Justin Cooke 2022-08-21 2022-08   EWG Evolution
P2635R0 Enhancing the break statement Justin Cooke 2022-08-21 2022-08   EWG Evolution

CppCon 2022 program is available

cppcon-023.pngThe Main Program for CppCon 2022 is now live:

CppCon 2022 Program Announced

Register now to attend on-site or on-line!

From the announcement:

This year, CppCon is a hybrid format, so we are presenting four tracks for onsite attendees and five tracks for online attendees.

Online attendees will be able to participate in onsite sessions via “simul-cast” for most sessions. (Online attendees with On-Demand Session Access will have the ability to view recorded versions of all sessions–onsite and online–shortly after they happen.)

We’ll have over seventy breakout sessions delivered onsite and fifty additional remote sessions by the best C++ presenters in the industry, many returning from previous years as well as some exciting new voices, some of whom are able to present only because we are offering a remote presenting possibility. In addition, we’ll present our traditional onsite plenary session every day and an online opening keynote. We’ve already announced our onsite Opening Keynote and three other plenary talks and will be announcing our other two headline talks here in coming days.

This year’s Main Program features five special tracks including the Back to Basics Track, the Embedded Track, the Software Design Track, and the band new Scientific Computing Track and Tooling Track.

In addition to the Main Program, we’ll have the panels, lightning talksOpen Content talks, BOFs, exhibitors, social events, and classes that attendees have enjoyed in past years.

Most of the program is published, but we are still working a few surprises, so keep checking back.

We’d like to thank the Program Committee, our speakers, and the many professionals who proposed talks which we, unfortunately, just couldn’t squeeze in this year. Thank you for your hard work and enthusiastic support for this year’s program!

We hope to see you all in less than a month so register now.


About conditional breakpoints

A post on conditional breakpoints, including two surveys about their usage.

About conditional brealkpoits

by Jens Weller

From the article:

A few weeks ago someone asked me for advice on finding a specific bug in a larger C++ code base...

I don't remember much of the details, but one of the challenges was that at least some of the code based used public members, and in order to find the bug a change in these members is what they wanted to understand. Adding out put statements into a setter function wasn't possible, as the code did not have those. My suggestion was using a conditional breakpoint. And it also made me curious, if and how they're used with in our community.

PVS-Studio 7.20: Unreal Engine, SAST, SCA

The bug related to Unreal Engine's inability to find PVS-Studio by the default path is finally fixed. Starting from Unreal Engine 5.0.3. you you can analyze projects without any workarounds. We've also enhanced the analysis of UE projects: you'll see more true warnings and fewer false ones.

PVS-Studio 7.20: Unreal Engine, SAST, SCA

by Sergey Vasiliev

From the article:

New diagnostics for C, C++:

  • V1086. Call of the 'Foo' function will lead to buffer underflow.
  • V1087. Upper bound of case range is less than its lower bound. This case may be unreachable.
  • V1088. No objects are passed to the 'std::scoped_lock' constructor. No locking will be performed. This can cause concurrency issues.
  • V1089. Waiting on condition variable without predicate. A thread can wait indefinitely or experience a spurious wake up.

Seastar - Asynchronous C++ framework

A review of the Seastar framework

Seastar - Asynchronous C++ framework

By Roman Gershman

From the article:

Seastar shows the true potential of the hardware it utilizes. It has lots of pre-built constructs to cover many synchronization scenarios and I think it’s a perfect candidate to analyze how futures and continuations code might look in C++.

CppCon 2022 Diversity Dinner - Call for mini-talk proposals

CppCon 2022 is just a month away! Here's an update on the Diversity Dinner and workshop, with a CfP for mini-talks:

CppCon 2022 Call For Proposals Diversity Dinner

by Timur Doumler

From the announcement:

We’re happy to announce the Call For Proposals for our Diversity Dinner Event at CppCon 2022!

This year, CppCon’s Diversity Dinner, which will be held on-site at the Gaylord Rockies in Aurora on Wednesday, September 14th, will be expanded to include a workshop to discuss processes, experiences, and paths forward for improving diversity and inclusion in the C++ community.

We are planning a series of 10-minute mini-talks, and we would like you to present at the event! Please submit your mini-talk proposal here by 28 August 2022. You will be notified about the acceptance decision soon afterwards.

The 10-minute mini-talks should be relevant to our audience. While any proposals on the topic of diversity and inclusion in the C++ community are welcome, this year we would like to focus particularly on the empowerment of our attendees. For example, great topics would be anything from “What did I learn from my experience as a deaf software developer” to “How to negotiate to get a 30% raise” or “What’s the best way to get everyone’s input in a diverse team”. Feel free to share your experience, thoughts, and tips!

Whether you’d like to be a presenter, or just attend the Diversity Dinner, listen, and participate in the discussion, please make sure you register for CppCon and book your ticket for the Diversity Dinner. We look forward to seeing many of you there!