Boost Your Productivity with Modern C++ - Now with C++17—Peter Gottschling

Repeating the last years’ popular course, again being held in English and German:

Boost Your Productivity with Modern C++ -- Now with C++17


by Peter Gottschling

About the training:

The course is designed for software developers who aim for excellent software characterized by intuitive interfaces and maximal performance. Our goal for this 4-day course is that you can afterwards program perceivably more productively. That your programs are usable more flexibly and nonetheless explore the hardware as efficiently as possible. That your software becomes clearer and simpler and thus more readable and more maintainable. For this purpose, we intensively use features of C++11, C++14, and recently C++17.

The trainer Peter Gottschling is the author of the advanced C++14 book ”Discovering Modern C++”,the Matrix Template Library 4, co-author of the Boost Graph Library and other scientific libraries. He is vice-chair of DIN’s programming language group and was (the last) head of the German delegation in the ISO committee for C++ standardization.

The complete course description including the list of topics is available here. Next trainings: 9/17-20/2018 in English and 12/3-7/2018 in German.

 

Registration for Student- and Supporttickets for Meeting C++ 2018 is available

Meeting C++ has opened their programs for attending the conference over the student- and support ticket programs.

Announcing the student and support tickets for Meeting C++ 2018

by Jens Weller

From the article:

The programs for attending Meeting C++ with through a free ticket are back! You can now register for a Student and/or Support ticket.

Also, additionally the application form for the volunteer program is open...

CppCon 2017: Agent based class design--Odin Holmes

Have you registered for CppCon 2018 in September? Early bird 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:

Agent based class design

by Odin Holmes

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

Abstracting a set of functionalities into a class which provides a higher level interface often requires tough design decisions. Users who do not have the exact requirements for which the abstraction is optimized will suffer a syntactic or run time overhead as a result. Alexandrescu's famous "policy-based design" provides a mechanism to allow the user to extend and customize an existing abstraction in order to fine-tune its functionality for many different use cases. This is however limited to use cases where each policy more or less represents a compile time strategy pattern.

Alas, not everything is a strategy pattern. In this talk I will explore the viability of a more agent-pattern-like paradigm where each policy knows its requirements and publishes its capabilities. In this paradigm, glue code connecting any valid set of policies is automatically generated using template metaprogramming. This allows much more powerful customizations while maintaining static linkage.

CppCon keynote: Simplicity, not just for beginners -- Kate Gregory

KateGregory-300x300.jpegNote: Five days left to register for CppCon 2018 at the Early Bird discounted rate.

Another keynote announcement, another reason not to miss CppCon 2018 this September:

CppCon 2018 Keynote: Simplicity: Not Just for Beginners (Kate Gregory)

From the announcement:

In this talk I’ll spend a little time on why simpler is better, and why we resist simplicity. Then I’ll provide some specific approaches that are likely to make your code simpler, and discuss what you need to know and do in order to consistently write simpler code and reap the benefits of that simplicity.

If you’re not sure what CppCon is like, here are sample attendee quotes from a previous CppCon that came up randomly on the CppCon site this morning:

“The best place to meet other C++ users and learn about the problems they have faced and solved.” “Just go - you won't reget it!”

The CppCon Early Bird discounted ticket rate is available for the rest of this week. Register here for CppCon 2018, Sep 23-29!

CppCon 2017: Concurrency, Parallelism and Coroutines--Anthony Williams

Have you registered for CppCon 2018 in September? Early bird 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:

Concurrency, Parallelism and Coroutines

by Anthony Williams

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

C++17 is adding parallel overloads of most of the Standard Library algorithms. There is a TS for Concurrency in C++ already published, and a TS for Coroutines in C++ and a second TS for Concurrency in C++ in the works.

What does all this mean for programmers? How are they all related? How do coroutines help with parallelism?

This session will attempt to answer these questions and more. We will look at the implementation of parallel algorithms, and how continuations, coroutines and work-stealing fit together. We will also look at how this meshes with the Grand Unified Executors Proposal, and how you will be able to take advantage of all this as an application developer.

Parallel STL And Filesystem: Files Word Count Example--Bartlomiej Filipek

Now with some more numbers.

Parallel STL And Filesystem: Files Word Count Example

by Bartlomiej Filipek

From the article:

Last week you might have read about a few examples of parallel algorithms. Today I have one more application that combines the ideas from the previous post.

We’ll use parallel algorithms and the standard filesystem to count words in all text files in a given directory...

Functions of Variants are Covariant--Alfredo Correa

It's varying!

Functions of Variants are Covariant

by Alfredo Correa

From the article:

Sum types have a range of values that is the sum of the ranges of its parts. std::variant is the model representation of sum types in C++.

For example std::variant can hold an integer value (int state) or a double value (double state). The use of variant types provides support for polymorphism while maintaining value semantics.

There are only a few intrinsic functions that can be applied directly to an std::variant instance in C++; basically, only functions that probe or extract their current type state and value. Simple C++ functions over its component states cannot be applied directly to the variant since the type information needs to be probed before calling the corresponding function over the correct type.

Specific C++ functions can be applied through visitors. However, standard visitors are static and non-covariant, stopping polymorphism from propagating through function application.

A basic explanation of variants and their visitors can be found here.

Trip report: Summer ISO C++ standards meeting (Rapperswil) -- Herb Sutter

Contracts, concepts, and C++20, oh my!

Trip report: Summer ISO C++ standards meeting (Rapperswil)

by Herb Sutter

From the article:

Top news: Contracts adopted for C++20

... In my opinion, contracts is the most impactful feature of C++20 so far, and arguably the most impactful feature we have added to C++ since C++11. That statement might surprise you, so let me elaborate why I think so...

CppCon: Spectre keynote, Early Bird rate available until Saturday

Note: Six days left to register for CppCon 2018 at the Early Bird discounted rate.

From the CppCon blog, one of this year's keynotes is on one of the hottest programming language topics of the year:

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

There will also be a followup panel of industry experts who have helped lead the software response to this problem. From the announcement:

Chandler, who leads the C++ and LLVM teams at Google ... is one of the lead engineers within Google and across the industry working to respond to these developments.

From his talk’s 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. However, speculative execution attack techniques have fundamentally altered the ease and applicability of side-channels: far more code is impacted by these attacks and they can more reliably be weaponized. 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.

In addition to his plenary address, Chandler will participate in a panel discussion with other experts from across the industry who have helped lead this security incident response.
 

If you’re not sure what CppCon is like, here’s a sample attendee quote from a previous CppCon that came up randomly on the CppCon home page this morning:

“If you want to meet awesome people, spend a week in a fantastic city, and have your mind-blown by incredible speakers then look no further than CppCon. It is THAT good.”

The CppCon Early Bird discounted ticket rate is available for one more week. Register here for CppCon 2018, Sep 23-29!