Spaceship Operator--Simon Brand

The future?

Spaceship Operator

by Simon Brand

From the article:

You write a class. It has a bunch of member data. At some point, you realise that you need to be able to compare objects of this type. You sigh and resign yourself to writing six operator overloads for every type of comparison you need to make. Afterwards your fingers ache and your previously clean code is lost in a sea of functions which do essentially the same thing. If this sounds familiar, then C++20’s spaceship operator is for you. This post will look at how the spaceship operator allows you to describe the strength of relations, write your own overloads, have them be automatically generated, and how correct, efficient two-way comparisons are automatically rewritten to use them...

C++17 in Detail by Bartłomiej Filipek--Marc Gregoire

Interested?

C++17 in Detail by Bartłomiej Filipek

by Marc Gregoire

From the article:

C++17 provides developers with a nice selection of new features to write better, more expressive code.

Bartłomiej Filipek has released a book titled “C++17 in Detail” that describes all significant changes in the language and the Standard Library. What’s more, it provides a lot of practical examples so you can quickly apply the knowledge to your code. The book brings you exclusive content about C++17. Additionally, the book provides insight into the current implementation status, compiler support, performance issues and other relevant knowledge to boost your current projects...

How to Design Early Returns in C++ (Based on Procedural Programming)--Jonathan Boccara

What do you think?

How to Design Early Returns in C++ (Based on Procedural Programming)

by Jonathan Boccara

From the article:

Travelling back from ACCU conference a couple of weeks ago, one of the insights that I’ve brought back with me is from Kevlin Henney’s talk Procedural Programming: It’s Back? It Never Went Away. It’s surprisingly simple but surprisingly insightful, and it has to do with early return statements...

Codeplay Announces World's First Fully-Conformant SYCL 1.2.1 Solution

SYCL is an open standard developed by the Khronos™ Group that enables developers to write code for heterogeneous systems using standard C++.  Developers are looking at how they can accelerate their applications without having to write optimized processor specific code. SYCL is the industry standard for C++ acceleration, giving developers a platform to write high-performance code in standard C++, unlocking the performance of accelerators and specialized processors from companies such as AMD™, Intel™, Renesas™ and Arm®.

Codeplay Announces World's First Fully-Conformant SYCL 1.2.1 Solution

by Codeplay

About the release:

Codeplay's ComputeCpp 1.0 enables SYCL and provides C++ developers with huge benefits:
    High Performance Computing: Supercomputers are playing an important role in computationally intensive tasks in the fields of science, finance, and many others to provide complex calculations and simulations. SYCL offers a standard way for HPC developers to write portable, efficient, accelerated code using standard C++ that can be deployed to GPUs, FPGAs and other accelerators
    Computer Vision: Complex image processing operations can be accelerated using parallel computing. ComputeCpp and SYCL provide high-level programmability for custom vision processors, enabling additional custom features on top of existing optimized hardware functions
    Artificial Intelligence: Linear algebra is increasingly being used in artificial intelligence applications and benefits from parallel architectures. The Eigen linear algebra library, SYCLBLAS and TensorFlow frameworks can be accelerated using ComputeCpp for a wide variety of heterogeneous hardware

CppCast Episode 164: SYCL with Gordon Brown

Episode 164 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Gordon Brown to discuss his work on SYCL the OpenCL abstraction layer for C++.

CppCast Episode 164: SYCL with Gordon Brown

by Rob Irving and Jason Turner

About the interviewee:

Gordon is a senior software engineer at Codeplay Software in Edinburgh, specialising in designing and implementing heterogeneous programming models for C++. Gordon spends his days working on ComputeCpp; Codeplay's implementation of SYCL and contributing to various standards bodies including the Khronos group and ISO C++. Gordon also co-organises the Edinburgh C++ user group and occasionally blogs about C++. In his spare time, Gordon enjoys dabbling in game development, board games and walking with his two dogs.

Doctest 2 released! Moved to C++11 -- Viktor Kirilov

Writing unit tests in C++ has never been easier and faster.

    Doctest 2 released! C++11, thread-safety, stand-alone assertions and more!

by Viktor Kirilov

From the article:

The main 4 developments are:

  • moved to C++11 => greatly simplified the codebase
  • thread-safety => asserts and logging utilities can be used in multiple threads spawned from a single test case without race conditions (thread sanitizer tested) - see example
  • given that doctest is extremely light on compile times and is meant to be used for tests side-by-side with the production code - added the ability for asserts to be used outside of a testing context (as a general purpose assert library) - example
  • a complete overhaul of the internals of the framework (moving from printf-style logging to streams and changing internal structures) to allow for easier future development (including a reporter interface - work in progress)

A major update to Meeting C++ recruiting

The job section of Meeting C++ received an important update: you can now share your resume with selected companies via a webform. Also you can share your open positions on the Meeting C++ job board or apply to become listed in the job section as a C++ employer.

A major update for Meeting C++ Recruiting

by Jens Weller

From the article:

Today I can announce a new offering in the recruiting area of Meeting C++: the CV upload form.

The mission of Meeting C++ is to support the C++ community and to build and maintain a worldwide network for C++. And with Meeting C++ recruiting, the goal is to integrate companies into this network, to make them visible as employers, and help people find the right jobs. With this service, I want to bring together companies, who have open positions for C++ Developers and those developers who are looking for a new challenging position!

CppCon 2017: Designing A Feature That Doesn't Fit--Patrice Roy

Have you registered for CppCon 2018 in September? Registration is open now.

While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2017 for you to enjoy. Here is today’s feature:

Designing A Feature That Doesn't Fit

by Patrice Roy

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

C++ is a wonderful and expressive language, that gives programmers a lot of freedom even though it actively seeks to let programmers obtain the maximal performance from their hardware. It so happens that sometimes, operating systems can make it easy to do things that are absolutely not natural for a C++ program, but that some C++ programmers consider essential to their practice.

This talk will explore the problem of adding functionality to the language, more specifically to the standard threading library, where said functionality is not a natural fit for the C++ language specification. Expressed otherwise: how can we find ways to meet the needs of users without corrupting the language we all love?

This talk will be more interesting to you if you have met situations where you wanted to do something in "pure C++" but found you had to resort to operating system-specific features to meet your objectives. We will discuss the design space that has been explored for the problem under study, and will try to make emerge the strengths and weaknesses of the various alternatives.

“Modern C++” != “New(est) Standard”--Arne Mertz

What do you think?

“Modern C++” != “New(est) Standard”

by Arne Mertz

From the article:

The term “Modern C++” is often used interchangeably with “Code using the new C++ standard”. Here, “new” may be anything from C++11 to C++17 or even whatever is available of C++20 right now. I think that modern C++ is more and something different than just adding that -std=c++17 flag.