May 2020

5 Advantages of C++ Lambda Expressions and How They Make Your Code Better--Bartlomiej Filipek

Do you agree?

5 Advantages of C++ Lambda Expressions and How They Make Your Code Better

by Bartlomiej Filipek

From the article:

The mixture of brackets in the preceding line become one of the most noticeable indications of Modern C++.
Yep.
Lambda Expressions!
It might sound like I’m trying to create a new blog post about something that everyone knows. Is that true? Do you know all the details of this modern C++ technique?

In this article, you’ll learn five advantages of Lambdas. Let’s start...

C++20: A Simple math Module--Rainer Grimm

The series continue.

C++20: A Simple math Module

by Rainer Grimm

From the article:

Modules are one of the four prominent features of C++20. They overcome the restrictions of header files and promise a lot: faster build-times, fewer violations of the One-Definition-Rule, less usage of the preprocessor. Today, I want to create a simple math module...

C++ on Sea moves online - and into July

C++ on Sea will now be a virtual conference, held July 15th-17th (with workshops the following week).

C++ on Sea moves online - and into July

From the article:

We decided to move the workshops a little further away, since we no longer have the constraints imposed by venue, accommodation and travel - but we do want to reduce the number of consecutive days people will need to spend watching online.

The workshops will also run on different days from each other - so, potentially, you could attend more than one!

SonarQube / SonarCloud detect buffer overflows in most POSIX functions

SonarQube and SonarCloud perform static analysis of C, C++ and 25 other languages. 

Detect C++ buffer overflows in most POSIX functions

By G. Ann Campbell

From the article:

Buffer overflows have been responsible for some of the most notorious crashes, worms, and hacks for more than 30 years, including the Morris worm, the Code Red worm, and the ping of death. More recently, VPNs have been compromised via buffer overflow; an overflow-related code execution flaw was found in macOS Mojave (fixed in Catalina); and a WhatsApp buffer overflow exposed users' private messages, location, and even camera and mic feeds. In short, buffer overflows aren't just bugs that could crash your program; they also represent serious threats to security. That's why we're excited to announce the availability of a new C and C++ rule to detect overflows in most POSIX functions: S5782, "POSIX functions should not be called with arguments that trigger buffer overflows".

Ray Tracing in one weekend with SYCL

SYCL is an open standard developed by the Khronos™ Group that enables developers to write code for heterogeneous systems using standard C++.

Ray-tracing in a Weekend with SYCL: Basic sphere tracing

by Codeplay

About the article

C++ Ray-Tracing in a Weekend by Peter Shirley is a great resource to start learning about ray-tracers and how to implement one, and at the same time providing all the source code in a GitHub repository . You can find more information about his books on ray-tracing techniques with accompanying implementations on his blog, and you can also download the books as .pdf, or load them on your Kindle device for free from the GitHub project.

The main goal of this blog post is not to teach the concepts of ray-tracing, Peter does a great job of that, but provide a walk-through tutorial on how to accelerate practical applications and algorithms using SYCL.

2020-05 mailing available

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

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
P0493R1 Atomic maximum/minimum Al Grant 2020-05-17 2020-05 P0493R0 SG1 Concurrency and Parallelism,LEWG Library Evolution
P0870R3 A proposal for a type trait to detect narrowing conversions Giuseppe D'Angelo 2020-05-17 2020-05 P0870R2 SG6 Numerics
P1679R2 String Contains function Wim Leflere 2020-05-17 2020-05 P1679R1 LWG Library
P1841R1 Wording for Individually Specializable Numeric Traits Walter E Brown 2020-05-14 2020-05 P1841R0 LWG Library
P1861R1 Secure Networking in C++ JF Bastien 2020-05-11 2020-05 P1861R0 SG4 Networking,LEWG Library Evolution
P1897R3 Towards C++23 executors: A proposal for an initial set of algorithms Lee Howes 2020-05-16 2020-05 P1897R2 SG1 Concurrency and Parallelism
P1898R1 Forward progress delegation for executors Lee Howes 2020-05-16 2020-05 P1898R0 SG1 Concurrency and Parallelism
P1974R0 Non-transient constexpr allocation using propconst Jeff Snyder 2020-05-15 2020-05   EWG Evolution,LEWG Library Evolution,LWG Library
P1985R1 Universal template parameters Gašper Ažman 2020-05-15 2020-05 P1985R0 EWG Evolution
P2066R2 Suggested draft TS for C++ Extensions for Transaction Memory Light Jens Maurer 2020-05-12 2020-05 P2066R1 SG1 Concurrency and Parallelism,EWG Evolution
P2128R1 Multidimensional subscript operator Corentin Jabot 2020-05-15 2020-05 P2128R0 EWG Evolution
P2136R1 invoke_r Zhihao Yuan 2020-05-15 2020-05 P2136R0 LEWG Library Evolution,LWG Library
P2142R1 Allow '.' operator to work on pointers Jim Buckeyne 2020-05-17 2020-05 P2142R0 EWGI SG17: EWG Incubator
P2145R0 Evolving C++ Remotely Bryce Adelstein Lelbach 2020-04-21 2020-05   All of WG21
P2159R0 An Unbounded Decimal Floating-Point Type Bill Seymour 2020-04-23 2020-05   SG6 Numerics,LEWGI SG18: LEWG Incubator
P2160R0 Locks lock lockables (wording for LWG 2363) Tim Song 2020-05-13 2020-05   LWG Library
P2161R0 Remove Default Candidate Executor Robert Leahy 2020-05-14 2020-05   SG4 Networking
P2162R0 Inheriting from std::variant (resolving LWG3052) Barry Revzin 2020-05-05 2020-05   LEWG Library Evolution
P2163R0 Native tuples in C++ Mike Spertus 2020-05-17 2020-05   EWGI SG17: EWG Incubator,EWG Evolution
P2164R0 views::enumerate Corentin Jabot 2020-05-15 2020-05   LEWG Library Evolution
P2165R0 Comparing pair and tuples Corentin Jabot 2020-05-15 2020-05   LEWG Library Evolution
P2167R0 Improved Proposed Wording for LWG 2114 Daniel Krügler 2020-05-13 2020-05   LWG Library
P2168R0 generator: A Synchronous Coroutine Generator Compatible With Ranges Corentin Jabot 2020-05-16 2020-05   LEWG Library Evolution
P2169R0 A Nice Placeholder With No Name Corentin Jabot 2020-05-16 2020-05   EWG Evolution
P2170R0 Feedback on implementing the proposed std::error type Charles Salvia 2020-05-15 2020-05   All of WG21
P2171R0 Rebasing the Networking TS on C++20 Jonathan Wakely 2020-05-15 2020-05   LWG Library
P2172R0 What do we want from a modularized Standard Library? Corentin Jabot 2020-05-16 2020-05   EWG Evolution
P2173R0 Attributes on Lambda-Expressions Daveed Vandevoorde 2020-05-15 2020-05   EWG Evolution
P2174R0 Compound Literals Zhihao Yuan 2020-05-15 2020-05   EWGI SG17: EWG Incubator

Meeting C++ Blogroll now available as a weekly newsletter

Since more then 5 years the Meeting C++ Blogroll exists on meetingcpp.com, now its also available as a weekly newsletter!

Meeting C++ Blogroll now available as a weekly newsletter

by Jens Weller

From the article

You can now subscribe to the blogroll as a weekly newsletter, and receive every friday what has been posted on blogs and videos about C++ directly from Meeting C++ by email! If you already have an Meeting C++ Account, you can subscribe via the profile edit page.

CopperSpice: Attributes

New video on the CopperSpice YouTube Channel:

Attributes

by Barbara Geller and Ansel Sermersheim

About the video:

In this video, we look at the history of attributes, and how some were standardized in modern C++. We also discuss the assortment of attributes available in C++20, and some of the interesting and rarely examined features they contain.

Please take a look and remember to subscribe!

Virtual Italian C++ Conference 2020

An online-only full day of C++:

Virtual Italian C++ Conference 2020

June 13, 2020

 

In a nutshell

The Italian C++ Conference 2020 has been turned into an online-only event, due to the COVID-19 global emergency.

The event consists in live sessions, a few pre-recorded sessions, and virtual rooms for networking.

 

What can I find in the Virtual Italian C++ Conference 2020?

You will find:

  • live keynote by Nicolai JosuttisC++ Move Semantics – The surprising things you should better know
  • 7x50-min live sessions
  • 2x50-min and 1x30-min pre-recorded sessions
  • text/video/voice moderated and sized virtual rooms for networking

You can refer to the event page for more information.

 

How can I attend the virtual event?

The event will go live on June 13 from 9 AM CEST.

All the sessions (live and pre-recorded) will be hosted on our YouTube channel. However, only registered people can see session links in advance.

Virtual rooms will be hosted on our Discord server. For invitation link and further details, you must register for the event.
 

Who supports this event?

The event is totally organized by the Italian C++ Community and it is sponsored by Think-cell and AIV.

 

Do I need to register?

The Virtual Italian C++ Conference 2020 is free (as all the previous editions) but you must register to be invited to virtual rooms  and to receive session links in advance.

Direct link to (free) tickets here.

 

 

See you at the event, safely from home!