News

How can I synthesize a C++20 three-way comparison from two-way comparisons?--Raymond Chen

Flying to the future.

How can I synthesize a C++20 three-way comparison from two-way comparisons?

by Raymond Chen

From the article:

The C++20 three-way comparison operator <=> (commonly nicknamed the spaceship operator due to its appearance) compares two items and describes the result. It’s called the three-way comparison because there are five possible results: less, equal, equivalent, greater, and unordered.

Yeah, the name is kind of weird...

Technical Speaking about C++

Meeting C++ organized an event centered around sharing material on creating better talks and presentations for C++:

Technical Speaking about C++

by Jens Weller

About the article:

This event will focus on the process of creating technical talks for the C++ community. Various speakers will share their views on how to submit, prepare and give talks to the C++ community in the form of lightning talks.

 

HPX V1.8.0 released -- STE||AR Group

The STE||AR Group has released V1.8.0 of HPX -- A C++ Standard library for Concurrency and Parallelism.

HPX V1.8.0 Released

We have released HPX 1.8.0 -- a major update to our C++ Standard Library for Concurrency and Parallelism. The HPX parallel algorithms now have been fully adapted to C++20, all existing facilities have been adjusted to conform to this version of the Standard as well. We now can proudly announce full conformance to the C++20 concurrency and parallelism facilities. HPX supports all of the algorithms as specified by C++20. On top of that we support parallel versions of all range-based algorithms and have added support for explicit vectorization to more of our algorithms (using std::experimental::simd). Much work has been done towards implementing P2300 (std::execution) and the underlying senders/receivers facilities. Last but not least, we have finished the refactoring of the whole library into a rather large set of non-cyclically depending components. Finally, the new release comes with a brand new documentation interface!

You can download the release from our releases page or check out the 1.8.0 tag using git. A full list of changes can be found in the release notes.

HPX is a general-purpose parallel C++ runtime system for applications of any scale. It implements all of the related facilities as defined by the C++20 Standard. As of this writing, HPX provides the only widely available open-source implementation of the new C++17 and C++20 parallel algorithms, including a full set of parallel range-based algorithms. Additionally, HPX implements functionalities proposed as part of the ongoing C++ standardization process, such as large parts of the features related parallelism and concurrency as specified by the upcoming C++23 Standard, the C++ Concurrency TS, Parallelism TS V2, data-parallel algorithms, executors, and many more. It also extends the existing C++ Standard APIs to the distributed case (e.g., compute clusters) and for heterogeneous systems (e.g., GPUs).

HPX seamlessly enables a new Asynchronous C++ Standard Programming Model that tends to improve the parallel efficiency of our applications and helps reducing complexities usually associated with parallelism and concurrency.

 

2022-05 Mailing Available

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

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
N4912 2022-11 Kona hybrid meeting information Herb Sutter 2022-05-05 2022-05   All of WG21
N4913 PL22.16/WG21 agenda: 25 July 2022, Virtual Meeting John Spicer 2022-05-22 2022-05   All of WG21
P0543R1 Saturation arithmetic Jens Maurer 2022-05-02 2022-05 P0543R0 SG6 Numerics,LEWG Library Evolution
P0792R9 function_ref: a non-owning reference to a Callable Vittorio Romeo 2022-05-20 2022-05 P0792R8 LEWG Library Evolution,LWG Library
P0901R9 Size feedback in operator new Chris Kennelly 2022-04-26 2022-05 P0901R8 CWG Core,LWG Library
P1021R6 Filling holes in Class Template Argument Deduction Mike Spertus 2022-05-22 2022-05 P1021R5 CWG Core
P1255R7 A view of 0 or 1 elements: views::maybe Steve Downey 2022-05-09 2022-05 P1255R6 SG9 Ranges
P1642R9 Freestanding Library: Easy [utilities], [ranges], and [iterators] Ben Craig 2022-05-15 2022-05 P1642R8 CWG Core,LWG Library
P1673R8 A free function linear algebra interface based on the BLAS Mark Hoemmen 2022-05-15 2022-05 P1673R7 SG6 Numerics,LEWG Library Evolution
P1674R2 Evolving a Standard C++ Linear Algebra Library from the BLAS Mark Hoemmen 2022-05-15 2022-05 P1674R1 LEWG Library Evolution
P1774R7 Portable assumptions Timur Doumler 2022-05-15 2022-05 P1774R6 CWG Core
P1967R6 #embed - a simple, scannable preprocessor-based resource acquisition method JeanHeyd Meneide 2022-05-02 2022-05 P1967R5 EWG Evolution
P2286R8 Formatting Ranges Barry Revzin 2022-05-16 2022-05 P2286R7 LEWG Library Evolution
P2429R0 Concepts Error Messages for Humans Sy Brand 2022-05-16 2022-05   SG15 Tooling
P2445R1 forward_like Gašper Ažman 2022-05-13 2022-05 P2445R0 LWG Library
P2460R1 Relax requirements on wchar_t to match existing practices Corentin Jabot 2022-05-12 2022-05 P2460R0 SG22 Compatability,CWG Core
P2472R3 make function_ref more functional Jarrad J. Waterloo 2022-05-12 2022-05 P2472R2 LEWG Library Evolution
P2510R3 Formatting pointers Mark de Wever 2022-05-22 2022-05 P2510R2 LWG Library
P2513R2 char8_t Compatibility and Portability Fix JeanHeyd Meneide 2022-05-12 2022-05 P2513R1 EWG Evolution
P2542R2 views::concat Hui Xie 2022-05-11 2022-05 P2542R1 SG9 Ranges,LEWG Library Evolution
P2551R1 Clarify intent of P1841 numeric traits Matthias Kretz 2022-05-09 2022-05 P2551R0 LEWG Library Evolution
P2558R1 Add @, $, and ` to the basic character set Steve Downey 2022-05-11 2022-05 P2558R0 SG16 Unicode,SG22 Compatability
P2577R1 C++ Modules Discovery in Prebuilt Library Releases Daniel Ruoso 2022-04-30 2022-05 P2577R0 SG15 Tooling
P2577R2 C++ Modules Discovery in Prebuilt Library Releases Daniel Ruoso 2022-05-17 2022-05 P2577R1 SG15 Tooling
P2580R0 Tuple protocol for C-style arrays T[N] Paolo Di Giglio 2022-05-22 2022-05   LEWGI SG18: LEWG Incubator,LEWG Library Evolution
P2581R0 Specifying the Interoperability of Binary Module Interface Files Daniel Ruoso 2022-04-26 2022-05   SG15 Tooling
P2582R0 Wording for class template argument deduction from inherited constructors Timur Doumler 2022-05-15 2022-05   CWG Core
P2584R0 A More Composable from_chars Corentin Jabot 2022-05-12 2022-05   LEWG Library Evolution
P2585R0 Improving default container formatting Barry Revzin 2022-05-15 2022-05   LEWG Library Evolution
P2587R0 to_string or not to_string Victor Zverovich 2022-05-14 2022-05   SG16 Unicode,LEWGI SG18: LEWG Incubator
P2588R0 Relax std::barrier phase completion step guarantees Gonzalo Brito 2022-05-22 2022-05   SG1 Concurrency and Parallelism,LEWG Library Evolution
P2589R0 static operator[] Nevin Liber 2022-05-12 2022-05   EWG Evolution
P2590R0 Explicit lifetime management Timur Doumler 2022-05-16 2022-05   CWG Core,LWG Library
P2591R0 Concatenation of strings and string views Giuseppe D'Angelo 2022-05-19 2022-05   LEWG Library Evolution
P2592R0 Hashing support for std::chrono value classes Giuseppe D'Angelo 2022-05-20 2022-05   LEWG Library Evolution
P2593R0 Allowing static_assert(false) Barry Revzin 2022-05-21 2022-05   EWG Evolution

Tonight: Meeting C++ online event for speaking about C++

Meeting C++ online hosts an event tonight (19:00 - 23:00 CEST) which focuses on technical speaking for C++

Speaking about C++

by Jens Weller

From the event:

This event will focus on the process of creating technical talks for the C++ community. Various speakers will share their views on how to submit, prepare and give talks to the C++ community in the form of lightning talks and a panel.

Lightning Talks featuring

Tina Ulbrich
Clare Macrae
Hendrik Niemeyer
Andrei Alexandrescu
Chandler Carruth
Patricia Aas
Inbal Levi
Kate Gregory
Jens Weller

C++ on Sea 2022 - full schedule now available

The full schedule for C++ on Sea 2022, including pre-conference workshops, is now available.

Full 2022 schedule now available

by C++ On Sea

About the schedule

Read the article for full details on all the talks and workshops, as well as the speaker's dinner, lightning talks and Time Shift Package!

CppCon 2022 Call for Submissions -- Daisy Hollman

Jewelbots2017_RetinaWeb_28-300x194.jpgSeptember is only four months away!

CppCon 2022 Call for Submissions

by Daisy Hollman

From the announcement:

CppCon is the annual, week-long (September 11th-16th, 2022) face-to-face (and now also online) gathering for the entire C++ community. The conference Main Program consists of five days of several concurrent tracks of sixty-minute sessions.

This conference is organized by the C++ Community for the C++ Community. We want the whole community to be represented. We especially encourage those who identify as coming from an underrepresented community to apply to present and to be present. ...

For topic ideas, possible formats, submission instructions and valuable advice on how to make the best possible submission, see the Submissions page.