Gave a tech talk at NDC Oslo 2016 that I'm really excited to share. It's a talk about playing with things that don't exist yet. The fun part, is that almost all of it is possible in C++ today. You don't need to wait. You can play with things like
std::string_view and get the performance, safety/correctness, and self-documentation benefits today. You can write your own version of
constexpr if that works just fine in C++11
, lowering the barrier to entry for template branching and design by introspection. The one topic I talked about that you can't just try at home today is operator dot. Operator dot makes for some wonderful brain exercises. In this talk, I use it to implement contracts, specifically postconditions, in C++. In my talk from last year, I used it to let you mix in arbitrary code into any instance of any type. For anyone wondering what features are coming to C++ and when, I open the talk with a specific breakdown of what's new in C++17 and C++20. I also spend a moment talking about why things like concepts and modules didn't make it into C++17.
Anyway, here it is:
Exploring C++17 and beyond - Mark Isaacson from NDC Conferences on Vimeo.
You can grab the slides here.
 I show a version of
constexpr if implemented in C++14 for brevity. You can use a templated function operator overload instead of the lambda to get C++11 compatibility.