News

Templates - First Steps--Rainer Grimm

A powerful tool.

Templates - First Steps

by Rainer Grimm

From the article:

The idea of this post is quite simple. I want to visualize templates and, in particular, the process of template instantiation. Thanks to C++ Insights, this visualization is pretty easy...

C++ coroutines: Converting among tasks that use the same promise--Raymond Chen

The series continue.

C++ coroutines: Converting among tasks that use the same promise

by Raymond Chen

From the article:

If the only difference between tasks is in the awaiter, then it’s possible to convert between them without the promise even knowing what happened. We have an example of this with our simple_task and com_simple_task, which differ only in the awaiter produced by the co_await operator. This means that we can actually convert between the two by simple wrapping the promise inside the other class...

Online C++ User Group Meetings in May 2021

The monthly overview of upcoming C++ User Group meetings!

Online C++ User Group Meetings in May 2021

by Jens Weller

From the article:

The monthly overview on upcoming C++ User Group meetings. A bit later then usual, seems my talk at C++now and announcing Meeting C++ 2021 has kept me a bit too busy.

Next week Tuesday: Meeting C++ online - May - Design Patterns - Facts and Misconceptions with Klaus Iglberger. If you're interested in this topic, Klaus also gives a training on Modern C++ and Design Patterns in June.

Qt Developer Conference--Ann Fernandes

Will you attend?

Qt Developer Conference

by Ann Fernandes

From the article:

We at KDAB are pleased to announce an event we’re planning to host in Berlin this fall, September 28-30. Save the dates for KDAB’s Qt Developer Conference — a conference from Qt developers for Qt developers!

C++ coroutines: Waiting synchronously for our coroutine to complete--Raymond Chen

The series continue.

C++ coroutines: Waiting synchronously for our coroutine to complete

by Raymond Chen

From the article:

Last time, we added an extension point that permitted us to respond differently to the completion of the coroutine. We’re going to put that extension point to good use by adding the ability to wait synchronously for the coroutine to complete.

C++ coroutines: Adding COM context support to our awaiter--Raymond Chen

The series continue.

C++ coroutines: Adding COM context support to our awaiter

by Raymond Chen

From the article:

You may want to have awaiters that apply custom resume behavior. For example, in Windows, you are likely to want your awaiter to preserve the COM thread context. For X11 programming, you may want to the awaiter to return to the render thread if the co_await was initiated from the render thread. Today we’ll add the ability to customize the awaiter to our coroutine promise type...

C++ coroutines: Snooping in on the coroutine body--Raymond Chen

The series continue.

C++ coroutines: Snooping in on the coroutine body

by Raymond Chen

From the article:

A coroutine promise can snoop on the coroutine body by implementing a method named await_transform. Any time the coroutine body performs a co_await, the thing being awaited is passed through the await_transform method, and whatever await_transform returns is the thing that is actually awaited. This is the mysterious “We’re not ready to talk about step 1 yet” that kept reappearing in our introduction to awaitable objects...

Announcing Meeting C++ 2021 online conference!

This years Meeting C++ conference has been announced! It will be from Nov 10-12th online.

Announcing Meeting C++ 2021 online conference!

by Jens Weller

From the article:

Finally I can announce the official start of this years conference with the begin of the call for talks and the first batch of tickets available!

Meeting C++ 2021 will be from 10th - 12th November (Wed- Fri) and 100% online. Thats different from last year, when part of the planning always had to keep in mind that a hybrid event might become the "better" format due to venue contracts. This was one of the reasons last years conference was single track. Like every year the conference will run under Berlin Code of Conduct.

2021-04 Mailing Available

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

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
P0323R10 std::expected JF Bastien 2021-04-15 2021-04 P0323R9 LWG Library
P0447R13 Introduction of std::colony to the standard library Matt Bentley 2021-03-24 2021-04 P0447R12 SG14 Low Latency,LEWG Library Evolution,All of WG21
P1121R3 Hazard Pointers: Proposed Interface and Wording for Concurrency TS 2 Maged M. Michael 2021-04-09 2021-04 P1121R2 All of WG21
P1122R3 Proposed Wording for Concurrent Data Structures: Read-Copy-Update (RCU) Paul E. McKenney 2021-03-25 2021-04 P1122R2 LWG Library
P1132R7 out_ptr - a scalable output pointer abstraction JeanHeyd Meneide 2021-04-16 2021-04 P1132R6 LWG Library
P1169R1 static operator() Barry Revzin 2021-04-05 2021-04 P1169R0 EWG Evolution
P1401R5 Narrowing contextual conversions to bool Andrzej Krzemieński 2021-04-12 2021-04 P1401R4 CWG Core
P1664R3 reconstructible_range - a concept for putting ranges back together JeanHeyd Meneide 2021-04-16 2021-04 P1664R2 LEWG Library Evolution
P1673R3 A free function linear algebra interface based on the BLAS Mark Hoemmen 2021-04-14 2021-04 P1673R2 LEWG Library Evolution
P1706R3 Programming Language Vulnerabilities for Safety Critical C++ Michael Wong 2021-04-14 2021-04 P1706R2 SG12 Undefined and Unspecified Behavior
P1708R4 Simple Statistical Functions Richard Dosselman 2021-04-14 2021-04 P1708R3 SG6 Numerics,SG19 Machine Learning,LEWG Library Evolution
P1847R4 Make declaration order layout mandated Pal Balog 2021-04-12 2021-04 P1847R3 CWG Core
P1938R3 if consteval Barry Revzin 2021-03-22 2021-04 P1938R2 EWG Evolution
P1949R7 C++ Identifier Syntax using Unicode Standard Annex 31 Steve Downey 2021-04-14 2021-04 P1949R6 CWG Core
P1967R3 #embed - a simple, scannable preprocessor-based resource acquisition method JeanHeyd Meneide 2021-04-15 2021-04 P1967R2 EWG Evolution
P1989R2 Range constructor for std::string_view 2: Constrain Harder Corentin Jabot 2021-03-17 2021-04 P1989R1 LWG Library
P2128R4 Multidimensional subscript operator Corentin Jabot 2021-03-18 2021-04 P2128R3 EWG Evolution
P2128R5 Multidimensional subscript operator Corentin Jabot 2021-04-13 2021-04 P2128R4 EWG Evolution
P2168R2 generator: A Synchronous Coroutine Generator Compatible With Ranges Corentin Jabot 2021-03-22 2021-04 P2168R1 LEWG Library Evolution
P2186R2 Removing Garbage Collection Support JF Bastien 2021-04-16 2021-04 P2186R1 CWG Core,LWG Library
P2201R1 Mixed string literal concatenation Jens Maurer 2021-04-12 2021-04 P2201R0 CWG Core
P2223R2 Trimming whitespaces before line splicing Corentin Jabot 2021-04-13 2021-04 P2223R1 EWG Evolution,CWG Core
P2251R1 Require span & basic_string_view to be Trivially Copyable Nevin Liber 2021-03-19 2021-04 P2251R0 LEWG Library Evolution
P2255R1 A type trait to detect reference binding to temporary Tim Song 2021-04-11 2021-04 P2255R0 EWG Evolution,LEWG Library Evolution
P2265R1 Renaming any_invocable Kevlin Henney 2021-04-17 2021-04 P2265R0 LEWG Library Evolution
P2273R1 Making std::unique_ptr constexpr Andreas Fertig 2021-04-13 2021-04 P2273R0 LEWG Library Evolution
P2283R1 constexpr for specialized memory algorithms Michael Schellenberger Costa 2021-04-18 2021-04 P2283R0 LEWG Library Evolution
P2295R1 Correct UTF-8 handling during phase 1 of translation Corentin Jabot 2021-03-21 2021-04 P2295R0 SG16 Unicode,SG22 Compatability,EWG Evolution
P2295R2 Support for UTF-8 as a portable source file encoding Corentin Jabot 2021-04-13 2021-04 P2295R1 SG16 Unicode,SG22 Compatability,EWG Evolution
P2295R3 Support for UTF-8 as a portable source file encoding Corentin Jabot 2021-04-15 2021-04 P2295R2 SG16 Unicode,SG22 Compatability,EWG Evolution
P2303R2 Function literals and value closures Jens Gustedt 2021-03-29 2021-04 P2303R1 SG22 Compatability
P2304R1 Improve type generic programming Jens Gustedt 2021-03-29 2021-04 P2304R0 SG22 Compatability
P2305R2 Type inference for variable definitions and function returns Jens Gustedt 2021-03-29 2021-04 P2305R1 SG22 Compatability
P2306R1 Type-generic lambdas Jens Gustedt 2021-03-29 2021-04 P2306R0 SG22 Compatability
P2307R1 Lvalue closures Jens Gustedt 2021-03-29 2021-04 P2307R0 SG22 Compatability
P2312R1 Introduce the nullptr constant Jens Gustedt 2021-03-31 2021-04 P2312R0 SG22 Compatability
P2318R1 A Provenance-aware Memory Object Model for C Jens Gustedt 2021-03-24 2021-04 P2318R0 SG22 Compatability
P2321R1 zip Tim Song 2021-04-11 2021-04 P2321R0 LEWG Library Evolution,LWG Library
P2322R2 ranges::fold Barry Revzin 2021-04-14 2021-04 P2322R1 LEWG Library Evolution
P2325R2 Views should not be required to be default constructible Barry Revzin 2021-04-23 2021-04 P2325R1 LEWG Library Evolution
P2327R0 De-deprecating volatile compound assignment Paul Bendixen 2021-04-14 2021-04   SG14 Low Latency,EWG Evolution
P2337R0 Less constexpr for <cmath> Nicholas G Timmons 2021-03-22 2021-04   SG6 Numerics,LEWG Library Evolution
P2342R0 For a Few Punctuators More Corentin Jabot 2021-03-25 2021-04   SG7 Reflection,EWG Evolution
P2345R0 Relaxing Requirements of Moved-From Objects Sean Parent 2021-04-15 2021-04   LEWG Library Evolution,LWG Library
P2348R0 Whitespaces Wording Revamp Corentin Jabot 2021-04-14 2021-04   CWG Core
P2350R0 constexpr class Andreas Fertig 2021-04-13 2021-04   EWG Evolution
P2352R0 SG16: Unicode meeting summaries 2020-12-09 through 2021-03-24 Tom Honermann 2021-04-04 2021-04   SG16 Unicode
P2353R0 Metaprograms and fragments are needed in comma-separated contexts David Rector 2021-04-05 2021-04   SG7 Reflection
P2355R0 Postfix fold expressions S. Davis Herring 2021-04-12 2021-04   EWG Evolution
P2356R0 Implementing Factory builder on top of P2320 Matus Chochlik 2021-04-09 2021-04   SG7 Reflection
P2358R0 Defining Contracts Gašper Ažman 2021-04-15 2021-04   SG21 Contracts
P2360R0 Extend init-statement to allow alias-declaration Jens Maurer 2021-04-13 2021-04   EWG Evolution
P2361R0 Unevaluated string literals Corentin Jabot 2021-04-14 2021-04   SG16 Unicode,EWG Evolution
P2362R0 Make obfuscating wide character literals ill-formed Peter Brett 2021-04-14 2021-04   SG16 Unicode,EWG Evolution
P2363R0 Extending associative containers with the remaining heterogeneous overloads Konstantin Boyarinov 2021-04-15 2021-04   LEWG Library Evolution