"C++11 feels like a new language: The pieces just fit together better than they used to and I find a higher-level style of programming more natural than before and as efficient as ever." -- Bjarne Stroustrup.
Since 2011, Standard C++ has become a simpler, more productive language -- it has also expanded its support for numerics and parallelism. This allows us to stay within a portable C++ code while achieving the goals of Rcpp sugar.
This example-driven session provides a walkthrough showing how modern C++ can be used for a variety of statistical computing applications. We demonstrate how the advances in the core language, the standard library, and the wider libraries ecosystem (particularly Boost) enable simple and efficient code.
Topics include: shorter code with auto, decltype & range-based for loop; data wrangling with C++11 algorithms, lambdas, and Boost; random number generation with C++11; numerics & statistical analysis with Boost; easy parallelism with C++11 (async) and OpenMP; timing code with the chrono library; the most useful algorithms & containers in C++11 and Boost.
We end with a preview of the upcoming C++14 and C++17 features which further contribute to a simpler, more readable code -- as well as provide recommended resources to find out more!