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:

Hi,

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.

A true heterogeneous container in C++--Andy G

An interesting article as well as a nice demo!

A true heterogeneous container in C++

by Andy G

From the article:

Oftentimes I see questions StackOverflow asking something to the effect of

“Can I have a std::vector that holds more than one type?”
The canonical, final, never-going-to-change answer to this question is a thorough

“No”
C++ is a statically-typed language. A vector will hold an object of a single type, and only a single type.

“But…”
Of course there are ways to work around this...

Quick Q:Is there a way to mark a parent's virtual function final from a child class?

Quick A: No.

Recently on SO:

Is there a way to mark a parent's virtual function final from a child class without reimplementing it

No, you can't do it without reimplementing it. So just reimplement it:

struct Child : public Parent
{
    virtual void fn() override final { Parent::fn(); }
};

N.B. saying virtual ... override final is entirely redundant, final is an error on a non-virtual function, so you should just say:

    void fn() final { Parent::fn(); }

See http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rh-override

Registration for CppCon 2017 is Open

The next CppCon conference is in Bellevue, Washington September 24-29.

Registration for CppCon 2017 is Open

From the announcement:

In addition to the regular conference program there will be keynotes, lightning talks, and panels. There are also twelve pre- and post-conference classes (both two-day and one-day are offered) as well as a field trip to Boeing's Future of Flight tour.