Articles & Books

C++ Template: A Quick UpToDate Look(C++11/14/17/20)--Vishal Chovatiya

All you need to know;

C++ Template: A Quick UpToDate Look(C++11/14/17/20)

by Vishal Chovatiya

From the article:

I know, it’s been a while since the last time I published something newbies-friendly on my blog. The main reason is that most of my readers are either experienced devs or from C background having modest C++ encounter. But while programming in C++ you need a completely different mindset as both C & C++ belongs to different programming paradigm. And I always strive to show them a better way of doing things in C++. Anyway, I found the topic which is lengthy, reasonably complex(at least it was for me), newbies-friendly as well as energizing for experienced folks(if Modern C++ jargons, rules & features added) i.e. C++ Template.

I will start with a simple class/function template and as we move along, will increase the complexity. And also cover the advance topics like the variadic template, nested template, CRTP, template vs fold-expression, etc. But, yes! we would not take deeper dive otherwise this would become a book rather than an article.

The C++ Lambda Story Book--Bartlomiej Filipek

Getting up to date.

The C++ Lambda Story Book

by Bartlomiej Filipek

From the article:

Lambda Expressions appeared in C++11, and since then they become one of the most distinguishing features of Modern C++. What’s more, with each revision of the Standard the ISO Committee improved the syntax and capabilities of lambdas, so they are even more comfortable to use.

Read on to see how you can learn all the details of this powerful modern C++ feature.

"C++ Move Semantics - The Complete Guide" now Feature Complete -- Nico Josuttis

The new book by Nico Josuttis is now available as an ebook draft.

C++ Move Semantics - The Complete Guide

by Nico Josuttis

About the book:

Having 200 pages, the description of move semantics is feature complete now. Only a few chapters about the use of move semantics in the C++ standard library are missing.

The book teaches all aspects of C++ move semantics. Starting from the basic principles it motivates and explains all features and corner cases (such as perfect returning with decltype(auto)) so that a C++ programmer can understand and use move semantics right in application code, when implementing classes, in generic code, and in foundation libraries.


 

Part 2: 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 One Weekend with SYCL Part 2

    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.

This post follows on from the first part of my blog, where I showed how the I adapted the code from "Ray Tracing in one weekend" to increase performance using SYCL™. The first area I tackled was the rendering.

In this second post I'll show how to use SYCL to improve the performance of this code further using some interesting techniques.

C++20: The Unspoken Features -- Michele Caini

Modules, coroutines, concepts, and ranges, oh my. Here comes C++ 20. The big four new features are getting all the buzz, but what about the smaller features? 

C++20: The Unspoken Features

by Michele Caini

From the article:

What's new in C++ besides the big four? A lot of things. We certainly won't be able to see them all in one post. Among the most interesting (at least from my point of view) are the following:

  • Designated initializers
  • Spaceship operator
  • Extended range-based for statement
  • Pack expansions in lambda init-capture
  • Template parameter lists on lambdas
  • String literals as template parameters
  • consteval and constinit keywords
  • Constexpr containers
  • Constexpr virtual functions