October 2018

New Pluralsight Course: Introduction to Data Structures and Algorithms in C++ -- Giovanni Dicanio

A new course was published in the Pluralsight library:

Introduction to Data Structures and Algorithms in C++

by Giovanni Dicanio

From the article:

In this course, you’ll learn how to implement some fundamental data structures and algorithms in C++ from scratch, with a combination of theoretical introduction using slides, and practical C++ implementation code.

No prior data structure or algorithm theory knowledge is required. You only need a basic knowledge of C++ language features.

 

 

JSON for Modern C++ version 3.3.0--Niels Lohmann

Are you using it?

JSON for Modern C++ version 3.3.0

by Niels Lohmann

From the article:

This release adds support for GCC 4.8. Furthermore, it adds a function get_to to write a JSON value to a passed reference. Another topic of this release was the CMake support which has been overworked and documented.

Besides, a lot of bugs have been fixed and slight improvements have been made. All changes are backward-compatible...

std::any: How, when, and why--Casey Carter

Do you use it?

std::any: How, when, and why

by Casey Carter

From the article:

C++17 adds several new “vocabulary types” – types intended to be used in the interfaces between components from different sources – to the standard library. MSVC has been shipping implementations of std::optional, std::any, and std::variantsince the Visual Studio 2017 release, but we haven’t provided any guidelines on how and when these vocabulary types should be used. This article on std::any is the second of a series that examines each of the vocabulary types in turn...

“auto to stick” and Changing Your Style--Jonathan Boccara

What do you think?

“auto to stick” and Changing Your Style

by Jonathan Boccara

From the article:

While performing a code review on a refactoring project, I stumbled upon a change that took a line of code from this state:

Widget myWidget{42};

to that:

auto myWidget = Widget{42};

Well, in the actual case the type wasn’t called Widget and the initialization value wasn’t exactly 42. But that’s the gist of it...

ACCU 2019 Call for Papers -- ACCU

The ACCU 2019 is now putting together its program, and they want you to speak on C++. The ACCU has a strong C++ track, though it is not a C++-only conference. If you have something to share, check out their

Call for Papers

by the ACCU

From the article:

Historically, ACCU has a lot of C++ and C content, and is proud of that: ACCU is the foremost annual conference for people interested in C++ and C, at least in and around the UK. But it is not just a C++ and C conference, ACCU is about programming in whatever language people are using, with whatever tools and processes people are using: D, Chapel, Java, Kotlin, C#, F#, Groovy, Rust, Go, Python, Ruby, Lisp, to name just a few programming languages about which there have been sessions at ACCU conferences. Git, Mercurial, CMake, Meson, TDD, BDD, allthese tools and techniques have been the focus of sessions at ACCU. The ACCU Conference is looking for sessions that will be interesting to people who create software.

The keynote speakers are M. Angela Sasse, Kate Gregory, Paul Grenyer and Herb Sutter.

The Call for Papers lasts for about 3 weeks and will close on Friday 2018-10-26T23:59+01:00.

C++ Links #5 -- Bartlomiej Filipek and Wojciech Razik

cpplinks.pngThe 5th episode of the 'most useful C++ links' is now available:

C++ Links #5

by Bartlomiej Filipek and Wojciech Razik

From the article:

Welcome to new C++ Links - most important and useful articles, podcasts and videos that happen between 29th September and 5th of October.

In this week you will find two trip reports from CppCon, an article about std::any (aka modern void*), a video about std::fmt library and many more!

JetBrains C++ team at CppCon 2018: Trip report -- Anastasia Kazakova

CppCon 2018 is now over. While our memories are still fresh, we’d like to share our impressions of this year’s installment of CppCon.

JetBrains C++ team about CppCon 2018

by Anastasia Kazakova

This year's edition was unique and exceptional for many reasons:

  • Highly technical keynotes on Concepts, Lifetime, Spectre issues and more.
  • C++ developers on stage accepting an Academy Award!
  • A whole selection of great talks, some are covered in the trip report.
  • New Lightning Challenge format (our team was glad to take it and shared the impression in the report).

Our team is also running a survey at CppCon on a regular basis, no exception this year. Find the results on most popular standard and compiler inside.

 

CppCon 2018: Spectre: Secrets, Side-Channels, Sandboxes, and Security -- Chandler Carruth

cppcon2018-carruth.PNGThe CppCon 2018 closing keynote is now on YouTube:

Spectre: Secrets, Side-Channels, Sandboxes, and Security

by Chandler Carruth

From the description:

The discovery of speculative execution side-channel attacks (called "Spectre") fundamentally changes the security model of every modern superscalar microprocessor. Extracting secret data (credit cards, cryptographic keys) through side-channels is not new and has challenged the cryptographic community for decades. Despite this, the industry has often been complacent in our response, viewing these attacks as impacting a tiny amount of code and being nearly impossible to weaponize. But speculative execution attack techniques have fundamentally altered the ease and applicability of side-channels, making them a serious threat to computer security. Responding to these issues has impacted CPU design, compiler design, library design, sandbox techniques and even the C++ programming language and standard.

This talk will explain how these kinds of attacks work at a high level and provide a clear set of terminology to describe these classes of vulnerabilities and attacks. It will show how the different variants work at the low level of modern hardware to give a detailed and precise understanding of the mechanics involved on CPUs today.

It will also provide guidance about what makes applications and services vulnerable and how to analyze your software to understand the degree of its exposure. It will include an overview of the numerous different mitigation techniques available, how to deploy them, and what tradeoffs come with them. Some of these mitigations will be covered in detail: how they work at a hardware level, where they don't work, and what attack vectors remain.

Finally, the talk will show how traditional side-channel risks are made substantially easier to exploit due to speculative execution. This will cover how cryptographic and other libraries dealing in high-value secrets need to be adapted to correctly defend against these attacks. Further, it will introduce general problems of sandboxing untrusted code from secret data and the current best techniques in those circumstances.

This talk will be accessible to most C and C++ programmers. No deep background on CPUs, assembly, hardware instructions, Spectre, side-channels, or security is needed.