May 2017

Learning Modern C++ from Scratch—Giovanni Dicanio

There's a new video course published in the Pluralsight library, designed to take the learners from zero to being productive with basic elements of modern standard C++:

Learning Modern C++ from Scratch

by Giovanni Dicanio

From the blog post:

C++ is a language having a reputation of being hard to learn.

In this C++ course of mine published by Pluralsight, I did my best to prove the opposite: C++ can be learned in a simple, interesting, and fun way!

I used a variety of engaging visuals, metaphors and example demo code to try to teach modern, clear, good C++ from scratch, from the beginning, without any previous programming knowledge.

And, even if you already know C++, you may have fun watching this course as well.


CppCon 2016: Grill The Committee Panel

Have you registered for CppCon 2017 in September? Don’t delay – Registration is open now.

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

Grill The Committee Panel

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

What would you like to know about the C++ standard?
Join us for a panel discussion with the leaders of the C++ standards committee where the audience asks the questions.

CppCon 2017 Call for Submissions

Share what you've learned about C++.CppCon

Call for Submissions

by CppCon

From the announcement:

Have you learned something interesting about C++, maybe a new technique possible in C++14/17? Or perhaps you have implemented something cool related to C++, maybe a new C++ library? If so, consider sharing it with other C++ enthusiasts by giving a regular program talk at CppCon 2017.

The submissions deadline is June 11 with decisions sent by July 12.

ACCU 2017 trip report—Anastasia Kazakova

You want to know what happened?

ACCU 2017 trip report

by Anastasia Kazakova

From the article:


We’ve just returned from ACCU 2017 in Bristol, UK. Being amazed by the event I decided to share some notes here, and hope Phil will also jump in and share his impression. There are also reports by Vittorio Romeo, Simon Brand and Samathy Barratt which you might find interesting...

Using C++ Modules in Visual Studio 2017—Andrew Pardoe

The Visual C++ Team is elated to announce that with Visual Studio 2017, it has substantially improved the quality of the C++ Modules TS implementation in Visual Studio:

Using C++ Modules in Visual Studio 2017

by Andrew Pardoe

From the article:

Standard Library Modules support is included in Visual Studio 2017 RTM or newer. This capability is currently optional and off by default...

Fun with Reflection in C++—Jakie Kay

Jakie Kay explores in her recent blog post the borders of nearly unknown C++ features:

Fun with Reflection in C++

by Jakie Kay

From the article:

In my previous post, we learned about the current and future state of reflection in C++. But I left a few questions unanswered. Indeed, you may still be wondering why I care so much about reflection and if it has any useful applications for the average programmer. In this post, I’ll try to answer that question with real code examples using the two reference implementations of C++ reflection. I’ll explore the strengths of the two implementations, as well as the major limitations. These examples make heavy use of metaprogramming and C++17 features, so if you find yourself in unfamiliar territory while reading the code, I suggest supplementing this article with other resources.

When I refer to the reflexpr implementation, I’m talking about Matúš Chochlík’s fork of Clang which implements P1094, by Chochlík, Axel Naumann, and David Sankel.

When I refer to cpp3k, I’m talking about Andrew Sutton’s fork of Clang which implements P0590R0, by Sutton and Herb Sutter.

CppCast Episode 100: Past, Present and Future of C++ with Bjarne Stroustrup

Episode 100 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Bjarne Stroustrup, designer and original implementer of C++ to discuss the current state of C++, his vision for the future as well as some discussion of the past.

CppCast Episode 100: Past, Present and Future of C++ with Bjarne Stroustrup

by Rob Irving and Jason Turner

About the interviewee:

Bjarne Stroustrup is the designer and original implementer of C++ as well as the author of The C++ Programming Language (Fourth Edition) and A Tour of C++, Programming: Principles and Practice using C++ (Second Edition), and many popular and academic publications. Dr. Stroustrup is a Managing Director in the technology division of Morgan Stanley in New York City as well as a visiting professor at Columbia University. He is a member of the US National Academy of Engineering, and an IEEE, ACM, and CHM fellow. His research interests include distributed systems, design, programming techniques, software development tools, and programming languages. To make C++ a stable and up-to-date base for real-world software development, he has been a leading figure with the ISO C++ standards effort for more than 25 years. He holds a master’s in Mathematics from Aarhus University and a PhD in Computer Science from Cambridge University, where he is an honorary fellow of Churchill College.

Quick Q: When should you ever use functions over functors in C++?

Quick A: They behave differently, it depends on what you need.

Recently on SO:

When should you ever use functions over functors in C++?

Functions support distributed overriding. Functors do not. You must define all of the overloads of a Functor within itself; you can add new overloads of a function anywhere.

Functions support ADL (argument dependent lookup), permitting overloading in the argument-type associated namespace. Functors do not.

Function pointers are a kind of type-erased stateless functor that is a POD, as evidenced by how stateless lambdas convert into it. Such features (POD, stateless, type erasure) are useful.