The CppCon 2015 conference program has been posted for the upcoming September conference. We’ve received requests that the program continue to be posted in “bite-sized” posts, a few sessions at a time, to make the 100+ sessions easier to absorb, so here is another set of talks. This series of posts will conclude once the entire conference program has been posted in this way.
One of C++ selling point is the performance it allows, while still offering a good hardware abstraction. It enables not only fast programs, it enables efficient ones.
The following interrelated CppCon 2015 talks tackle these issues and more.
In this post:
- Faster Complex Numbers
- C++ Coroutines - a negative overhead abstractions
- High-performance, async-only and monadic future<T>
- constexpr: Introduction and Applications
- The Birth of SG14: better C++ support for Games Developers with Low latency needs
Faster Complex Numbers by André Bergner, Lead Developer Traktor, Native Instruments
Complex numbers are an important tool from mathematics enabling many problems to be written in a more generic form. The C++ standard library comes with an implementation to work with complex numbers in a natural way.
Motivated by useful real world examples from theoretical physics and audio dsp I will discuss benchmarks of std::complex and demonstrate how alternative implementations, naïve or advanced ones based on expression templates, outperform std::complex and can compete with hand-crafted C code (depending on compiler and std lib). A quick introduction to expression templates will be provided.
C++ Coroutines - a negative overhead abstractions by Gor Nishanov, Principal Software Design Engineer, Microsoft
C++ coroutines are one of the few major features that may land in C++17. We will look at the current standardization status, available experimental implementations and develop a small coroutine adapter over raw C networking APIs that will beat hand-crafted state machine in performance.
High-performance, async-only and monadic future<T> by Travis Gockel, Senior C++ Pirate, SolidFire
std::future provides us a mechanism for asynchronous communication between a provider and receiver. However, the C++14 standard does not allow for actual asynchronous programming, as the only ways to interact with an std::future are blocking calls. The proposed then helps, but the interface is awkward and can be extremely slow when handling exceptions. Here, I will talk about completion a high-performance, async-only and monadic alternative to std::future and how it is used at SolidFire.
constexpr: Introduction and Applications by Scott Schurr, C++ Developer, Ripple Labs
I'm excited about constexpr. It's probably my favorite C++11 feature and it's gotten even better with C++14. This talk will introduce constexpr to the uninitiated. We'll start with C++11 and continue into the improvements introduced with C++14. We'll look into useful ways to think about constexpr code. We'll also cover some tips and tricks with writing constexpr code.
But when I talk to other developers about constexpr they seem puzzled. What sorts of useful computations can the compiler possibly do before runtime?
I'd like to take this session to explore some of the capabilities that constexpr brings to the table. We'll look at compile-time parsing, floating-point computations, and containers. We'll also talk about motivations for computing these at compile time.
The Birth of SG14: better C++ support for Games Developers with Low latency needs by Nicolas Guillemot (Graphics Software Engineer, Intel), Sean Middleditch (Lead Server Engineer, Wargaming Seattle, Inc.) and Michael Wong
C++ is paramount for games development, and low-latency real-time applications everywhere. But has it recall improved since C++98/03? What features in C++ 11/14 has helped, and what else do we still need from C++ 17/22? In last year's CPPCon, there was clearly demand for even better support for this community as evidenced by the large number of games submission and an impromptu BoF.
But this industry has a demanding schedule and cannot freely attend ISO C++ standard meetings. So when the prophet cannot go to the mountain, the mountain has decided to come to the prophet!
This year, we like to announce the formation of an official SG14 that will go where the community is, at CppCon 2015 will be an official SG14 meeting followed by an SG14 meeting at GDC 2015 hosted by Sony.
This talk will describe the initial findings of the unofficial real time google group https://groups.google.com/forum/#!forum/unofficial-real-time-cxx as described in: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4526.pdf where we considered improvements such as flat map, intrusive container, and other suggestions for better support for games development and low latency in ISO C++.