New Attributes with C++20--Rainer Grimm

More possibilities.

New Attributes with C++20

by Rainer Grimm

From the article:

With C++20, we got new and improved attributes such as [[nodiscard("reason")]], [[likely]], [[unlikely]], and [[no_unique_address]]. In particular, [[nodiscard("reason")]] allows it to express the intention of your interface way clearer...

Modern C++ Software Design (Online Training) -- Klaus Iglberger

The second online training on "Modern C++ Software Design" has been announced:

Modern C++ Software Design (Online Training)

by Klaus Iglberger

From the article:

Content of the training

This advanced C++ training is a course on good software design with the C++ programming language. The focus of the training is on the essential and C++-specific software development principles, concepts, idioms, and best practices, which enable programmers to create professional, high-quality code. The course aims at understanding the core of the C++ programming language, teaches guidelines to develop mature, robust, maintainable, and efficient C++ software with a minimum of dependencies, and helps to avoid the most common pitfalls.

Date: September 23rd - 25th, 2020

Location: Online training

Instructor: Klaus Iglberger

Level: Intermediate, Advanced

The implication of const or reference member variables in C++ -- Lesley Lai

This article discusses why const or reference member variables can be problematic and the workarounds.

The implication of const or reference member variables in C++

by Lesley Lai

From the article:

I decide to write this post because the same problem raises several time by different people on Twitter and the #include <C++> discord server. There are solid reasons on why you should avoid const or reference member variables in C++...

Modern C++ Design Patterns (CppCon Online Training) -- Klaus Iglberger

After the first edition at CppCon 2019, the second edition of the popular workshop has been announced:

Modern C++ Software Patterns (Online Workshop)

by Klaus Iglberger

From the article:

Content of the training

Design patterns have proven to be useful over several decades and knowledge about them is still very useful to design robust, decoupled systems. Modern C++, however, has profoundly changed the way we use C++, think about design and implement solutions. This training explores modern C++ design and the modern forms of the classic design patterns. It provides guidelines, idioms and best practices for sustainable and maintainable design, which enable programmers to create professional, high-quality code. Amongst others it will answer the following questions:

  • How does good C++ design with a minimum of dependencies look like?
  • What are the most important rules for robust, maintainable, and sustainable design?
  • What are the most common pitfalls in C++ software design?
  • Why does classical C++ design based on inheritance hierarchies fail so often?
  • How are the classic design patterns realised in modern C++?
  • What are alternatives to the classic design patterns?

Date: September 9th - 11th, 2020

Location: Online training

Instructor: Klaus Iglberger

Level: Intermediate, Advanced

Boost Version 1.74.0

A new version is here.

Version 1.74.0

From the article:

New Libraries

  • STLInterfaces:

A library of CRTP bases to ease the writing of STL views, iterators, and sequence containers, from Zach Laine...

CppCon 2020 Embedded Track--Ben Saks

Will you attend?

CppCon 2020 Embedded Track

by Ben Saks

From the article:

Every year, CppCon offers C++ programmers a chance to exchange ideas with the rest of the C++ community. With the growing interest in autonomous vehicles, wearable devices, and IoT, embedded systems programming makes up an ever larger part of the community. In 2020, CppCon will expand on its past coverage of embedded topics by offering its first official Embedded Track...

More Lambda Features with C++20--Rainer Grimm

More lambda fun.

More Lambda Features with C++20

by Rainer Grimm

From the article:

Lambdas in C++20 can be default-constructed and support copy-assignment when they have no state. Lambdas can be used in unevaluated contexts. Additionally, they detect when you implicitly copy the this pointer. This means a significant cause of undefined-behavior with lambdas is gone...

New features in SYCL 2020

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

New Features in SYCL 2020

by Codeplay

About the blog:

The SYCL 2020 specification has been released for public review as a provisional specification and the group is looking for developers to provide their valuable feedback before the final version is published and ratified. In this blog engineers from Codeplay that are also contributors to the SYCL Working Group, the team that defines the standard within Khronos, talk about what they think will make developing with SYCL even better when using SYCL 2020.

CopperSpice: Time Complexity

New video on the CopperSpice YouTube Channel:

Time Complexity

by Barbara Geller and Ansel Sermersheim

About the video:

In this video we investigate the topic of time complexity, explain a little of the mathematical background, and show its practical applications to C++ programming. We talk about some of the common time complexity notations, and which algorithms you should choose based on their time complexity properties.

Please take a look and remember to subscribe!