News

CppCon 2022 Keynote: Timur Doumler, "How C++23 changes the way we write code"

Another keynote for CppCon which starts in just 9 days... register today!

CppCon 2022 Keynote: How C++23 Changes the Way We Write Code by Timur Doumler Live, In Person

From the announcement:

We’re happy to announce: Timur Doumler will be in Aurora live, in person to deliver key insights on C++23 best practices.

Here is the abstract for Timur’s talk:

C++20 was a huge release: coroutines, concepts, ranges, and modules profoundly changed the way we write code and think about C++. In comparison, C++23 is a lot smaller in scope: its primary mission is to complete C++20, to fill holes, and to fix issues. Nevertheless, some great new features made the cut this time around, both in the standard library and in the core language. This is even more remarkable considering that the entire feature design phase of C++23 took place during the COVID-19 pandemic, challenging the ISO C++ committee to completely reinvent how we work together.

This is not a firehose talk about C++23 that tries to cram as many additions and improvements as possible into one hour. Instead, we deliberately focus on just a handful of new features that are going to noticeably change and improve the experience of the everyday C++ programmer. We will talk about how `std::expected` improves error handling, the huge impact that `std::mdspan` will have on scientific computing, how deducing `this` greatly simplifies longstanding C++ idioms such as CRTP, and how `std::print` will forever change how we write “Hello, World”.

Timur is the Developer Advocate for C++ tools at JetBrains and an active member of the ISO C++ standard committee. As a developer, he worked many years in the audio and music technology industry and co-founded the music tech startup Cradle. Timur is passionate about building inclusive communities, clean code, good tools, low latency, and the evolution of the C++ language.
Registration is now open. Tickets are now available for both online attendees and in-person attendees.

Upcoming C++ User Group meetings in September 2022

The monthly listing of upcoming C++ User Group meetings at Meeting C++:

Upcoming C++ User Group Meetings in September 2022

by Jens Weller

From the article:

The monthly listing of upcoming C++ User Group meetings! This time with a new group in Toulouse!

Meeting C++ online has a few meetings in September and hosts a lightning talk session tonight:

    31.8 C++ UG Meeting C++ online - C++ Lightning Talks
    1.9 C++ UG Meeting C++ online - C++ Community Planning session
    7.9 C++ UG Meeting C++ online - September - Corolib: distributed programming with C++ coroutines
    8.9 C++ UG Meeting C++ online - Meeting C++ online book & tool fair
    13.9 C++ UG Meeting C++ online - Hiring for C++ with Meeting C++
    20.9 C++ UG Meeting C++ online - Online C++ job fair (afternoon CEST)
    21.9 C++ UG Meeting C++ online - Online C++ job fair (evening CEST)

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.

https://www.youtube.com/watch?v=YmEPMFMP7TE

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.

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++.