The Rcpp package provides R functions as well as a C++ library which
facilitate the integration of R and C++.

R data types (SEXP) are matched to C++ objects in a class hierarchy.
All R types are supported (vectors, functions, environment, etc ...)
and each type is mapped to a dedicated class. For example, numeric
vectors are represented as instances of the Rcpp::NumericVector class,
environments are represented as instances of Rcpp::Environment,
functions are represented as Rcpp::Function, etc ... The
"Rcpp-introduction" vignette provides a good entry point to Rcpp.

Rcpp also provides Rcpp modules, a framework that allows exposing C++
functions and classes to the R level. The "Rcpp-modules" vignette
details the current set of features of Rcpp-modules.

Rcpp includes a concept called Rcpp sugar that brings many R functions
into C++. Sugar takes advantage of lazy evaluation and expression
templates to achieve great performance while exposing a syntax that is
much nicer to use than the equivalent low-level loop code. The
"Rcpp-sugar" vignette gives an overview of the feature.

Additional documentation is available via the paper by Eddelbuettel
and Francois (2011, JSS) paper and the book by Eddelbuettel (2013,
Springer); see 'citation("Rcpp")' for details.

Homepage:
https://CRAN.R-project.org/package=Rcpp
