The Rcpp package provides a C++ library which facilitates
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.

Conversion from C++ to R and back is driven by the templates Rcpp::wrap
and Rcpp::as which are highly flexible and extensible, as
documented in the "Rcpp-extending" vignette.

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

Several examples are included, and 735 unit tests in 329 unit test
functions provide additional usage examples.

The Rcpp package provides a C++ library which facilitates
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.

Conversion from C++ to R and back is driven by the templates Rcpp::wrap
and Rcpp::as which are highly flexible and extensible, as
documented in the "Rcpp-extending" vignette.

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.

Several examples are included, and 773 unit tests in 366 unit test
functions provide additional usage examples.