This talk will preview what's to come on the C++17 and C++20 horizons. We'll explore real, working, code to show how new features will both change the way you handle day-to-day problems and also push the limits of what's possible in C++. We'll talk about how these language features have been put to use in the D community, which has had years of experience with them in production code. Topics include: A discussion of what's likely to come in C++17 and what's being delayed to C++20 std::string_view and the day-to-day benefits it provides, including preventing the dreaded static initialization order fiasco Using operator dot for a variety of unconventional uses, such as implementing poor-man's contracts Using std::uncaught_exceptions to write a generic Transaction class Making templates more accessible to the masses by using constexpr_if. We'll discuss how this is different from Concepts as well as how this can be used for Design by Introspection. Where new features are neither implemented in current compilers nor implementable in terms of C++14, this talk will feature the D language as a proxy. |