April 2023

GCC 13.1 Released

The GCC developers are proud to announce a new major GCC release, 13.1.

GCC 13.1 Released

by Richard Biener

From the announcement:

The C frontend got support for several C23 features, the C++ frontend for C++23 features.  The C++ standard library experimental support for C++20 and C++23 was enhanced.  For the C family of languages you can now use -fstrict-flex-arrays[=level] to control the behavior for the various legacy forms of specifying flexible array members.

CopperSpice: Docker for Developers

New video on the CopperSpice YouTube Channel:

Docker for Developers

by Barbara Geller and Ansel Sermersheim

About the video:

Docker is a container, but what does it actually store? Our new video explains how Docker is beneficial to the development process and not simply a deployment tool. We also discuss the differences between Docker and a VM.

Please take a look and remember to subscribe.

What Is the C++ Small String Optimization (SSO)? -- Giovanni Dicanio

What is the Small String Optimization (SSO)?

Let's discover that in the following blog post:

The C++ Small String Optimization

by Giovanni Dicanio

From the article:

How do “Connie” and “meow” differ from “The Commodore 64 is a great computer”?

In several implementations, [...], the STL string classes are empowered by an interesting optimization: The Small String Optimization (SSO).

Italian C++ Conference 2023

A full day of C++ in Rome (Italy) on June 10:

Italian C++ Conference 2023

 

An event organized by the Italian C++ Community.

Sponsors: AIV, Luxoft, KDAB, ZURU, think-cell, Qubica AMF.

 

International attendees are welcome: talks are all in English.

 

In a nutshell

The Italian C++ Conference is the greatest international conference about C++ hosted in Italy. Organized by the Italian C++ Community, the conference is not-for-profit and this year (7th edition) takes place in Rome, hosted at Università degli Studi Roma Tre. The purpose of this one-day event is to bring together the C++ software developer community in Italy and to promote the understanding and use of modern C++ standards, and best practices, constantly evolving.

Also...The Italian C++ Community celebrates its 10th anniversary this year and we are going to celebrate somehow...NO SPOILER!

 

Who should attend the Italian C++ Conference 2023?

This event is made by passionate C++ professionals for C++ professionals, students and enthusiasts.

 

What can I find at the Italian C++ Conference 2023?

  • Talks10x50-min and 2x30-min tech talks.
  • Networking
  • Sponsors: some are hiring and will be there!
  • Food: 2 coffee breaks and one lunch included
  • Italian C++ Community's 10th anniversary celebration

You can refer to the detailed program for more information.

 

When does the Italian C++ Conference 2023 take place?

The event will be held on June 10, 2023 at Università degli Studi Roma Tre, in Rome.

Check-in at 8.45 AM. The event starts at 9.15 AM and will last for a full day.

 

Who supports this event?

Sponsors: AIV, Luxoft, KDAB, ZURU, think-cell, Qubica AMF.
 

Do I need to register?

The Italian C++ Conference 2023 is free, but you must register to facilitate the organization of the event. You can register here.

Model-View-Controller -- Rainer Grimm

The Model-View-Controller (MVC) is one of the classic architectural patterns from the book "Pattern-Oriented Software Architecture, Volume 1". It addresses interactive applications with a  flexible human-machine interface.

Model-View-Controller

by Rainer Grimm

From the article:

The MVC divides the program logic of a user interface into separate components model, view, and controller. The model manages the data and rules of the application. The view represents the data, and the controller interacts with the user.

Purpose

  • User interfaces need to be changed frequently
  • Different user interfaces must be supported
  • The data model is stable

Solution

  • The application is divided into the components Model (data model), View (output components), and Controller (input components)
  • Multiple output components can use the same data model

2023-04 Mailing Available

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

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
N4943 WG21 February 2023 Issaquah Minutes of Meeting Nina Ranns 2023-03-06 2023-04   All of WG21
N4944 Working Draft, Standard for Programming Language C++ Thomas Köppe 2023-03-22 2023-04   All of WG21
N4945 Editors' Report - Programming Languages - C++ Thomas Köppe 2023-03-23 2023-04   All of WG21
P0876R13 fiber_context - fibers without scheduler Oliver Kowalke 2023-03-02 2023-04 P0876R12 LEWG Library Evolution
P1144R7 std::is_trivially_relocatable Arthur O'Dwyer 2023-03-10 2023-04 P1144R6 EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator,EWG Evolution,LEWG Library Evolution
P1673R12 A free function linear algebra interface based on the BLAS Mark Hoemmen 2023-03-14 2023-04 P1673R11 LWG Library
P1885R11 Naming Text Encodings to Demystify Them Corentin Jabot 2023-03-22 2023-04 P1885R10 LWG Library
P2022R1 Rangified version of lexicographical_compare_three_way Ran Regev 2023-03-11 2023-04 P2022R0 SG9 Ranges,LEWG Library Evolution
P2287R2 Designated-initializers for base classes Barry Revzin 2023-03-12 2023-04 P2287R1 EWG Evolution
P2407R3 Freestanding Library: Partial Classes Emil Meissner 2023-03-05 2023-04 P2407R2 LWG Library
P2447R3 std::span over an initializer list Arthur O'Dwyer 2023-03-14 2023-04 P2447R2 LEWG Library Evolution
P2530R3 Hazard Pointers for C++26 Maged Michael 2023-03-02 2023-04 P2530R2 LWG Library
P2545R4 Read-Copy Update (RCU) Paul E. McKenney 2023-03-08 2023-04 P2545R3 LWG Library
P2630R3 Submdspan Christian Trott 2023-03-15 2023-04 P2630R2 LEWG Library Evolution,LWG Library
P2690R1 Presentation for C++17 parallel algorithms and P2300 Ruslan Arutyunyan 2023-03-16 2023-04 P2690R0 SG1 Concurrency and Parallelism,LEWG Library Evolution
P2746R1 Deprecate and Replace Fenv Rounding Modes Hans Boehm 2023-03-14 2023-04 P2746R0 SG6 Numerics,LEWG Library Evolution
P2752R1 Static storage for braced initializers Arthur O'Dwyer 2023-03-10 2023-04 P2752R0 EWG Evolution,CWG Core
P2757R1 Type checking format args Barry Revzin 2023-03-13 2023-04 P2757R0 LEWG Library Evolution
P2780R0 Caller-side precondition checking, and Eval_and_throw Ville Voutilainen 2023-03-02 2023-04   SG21 Contracts
P2806R1 do expressions Barry Revzin 2023-03-12 2023-04 P2806R0 EWG Evolution
P2809R0 Trivial infinite loops are not Undefined Behavior JF Bastien 2023-03-14 2023-04   SG1 Concurrency and Parallelism,SG22 Compatability,EWG Evolution
P2811R0 Contract Violation Handlers Joshua Berne 2023-03-20 2023-04   SG21 Contracts
P2811R1 Contract Violation Handlers Joshua Berne 2023-03-20 2023-04 P2811R0 SG21 Contracts
P2817R0 The idea behind the contracts MVP Andrzej Krzemieński 2023-03-05 2023-04   SG21 Contracts
P2818R0 Uniform Call Syntax for explicit-object member functions Gašper Ažman 2023-03-15 2023-04   EWG Evolution
P2819R0 Add tuple protocol to complex Michael Florian Hava 2023-02-23 2023-04   SG6 Numerics,LEWG Library Evolution
P2824R0 WG21 February 2023 Issaquah meeting Record of Discussion Nina Ranns 2023-03-06 2023-04   All of WG21
P2825R0 calltarget(unevaluated-call-expression) Gašper Ažman 2023-03-15 2023-04   EWG Evolution
P2826R0 Replacement functions Gašper Ažman 2023-03-15 2023-04   EWG Evolution
P2827R0 Floating-point overflow and underflow in from_chars (LWG 3081) Zhihao Yuan 2023-03-14 2023-04   LEWG Library Evolution,LWG Library
P2828R0 Copy elision for direct-initialization with a conversion function (Core issue 2327) Brian Bi 2023-03-13 2023-04   CWG Core
P2830R0 constexpr type comparison Gašper Ažman 2023-03-15 2023-04   EWG Evolution
P2833R0 Freestanding Library: inout expected span Ben Craig 2023-03-13 2023-04   LEWG Library Evolution
P2836R0 std::const_iterator often produces an unexpected type Christopher Di Bella 2023-03-20 2023-04   SG9 Ranges,LEWG Library Evolution,LWG Library
P2838R0 Unconditional contract violation handling of any kind is a serious problem Ville Voutilainen 2023-03-22 2023-04   SG21 Contracts

Tonight 20:00 CEST/Berlin/Amsterdam: Meeting C++ online book & tool fair

Join us tonight (20:00 CEST/Berlin/Amsterdam) for the Meeting C++ online book & tool fair!

Meeting C++ online book & tool fair

About the event:

Tonight will featuring 3 tools and one book in the fair and the kick off livestream with demos at 20:00 CEST:

  • Undo.io
  • Modern C++ for absolute Beginners by Slobodan Dmitrović
  • Conan 2.0
  • KDABs open source tools: hotspot, heaptrack, gammaray and more

The second part of the event will be in the Hubilo lounge, where you can visit each of the above tools and books at their own table and ask your questions!

C++20: consteval and constexpr Functions -- Daniel Lemire

Optimizing compilers seek try to push as much of the computation as possible at compile time.

C++20: consteval and constexpr Functions

by Daniel Lemire

From the article:

In modern C++, you can declare a function as ‘constexpr’, meaning that you state explicitly that the function may be executed at compile time.

The constexpr qualifier is not magical. There may not be any practical difference in practice between an inline function and a constexpr function, as in this example:

inline int f(int x) {
  return x+1;
}

constexpr int fc(int x) {
  return x+1;
}