Jim Hester - cpp11 - welding R and C++ - SatRday Columbus 2020
Channel: SatRday Columbus
Date: 31/12/2020

cpp11 - welding R and C++
Jim Hester
Session: Infrastructure
SatRday Columbus 2020
Nov 14, 2020
https://columbus2020.satrdays.org/

R and S have a long history of interacting with compiled languages. The Rcpp package has been a widely successful project, however over the years a number of issues and additional C++ features have arisen. Modifying Rcpp to fix or include these would require a great deal of work, or in some cases would be impossible without severely breaking backwards compatibility. cpp11 is a ground up rewrite of C++ bindings to R with different design trade-offs and features. This talk will focus on the new features of cpp11 including:

- Enforcing copy-on-write semantics.
- Improving the safety of using the R API from C++ code.
- Supporting ALTREP objects.
- Using UTF-8 strings everywhere.
- Applying newer C++11 features.

We will also discuss the mechanics of transitioning packages from Rcpp to cpp11 and why we feel cpp11 is a solid foundation to build upon in the years ahead.