.Call()
interface provided by R.
Rcpp provides matching C++ classes for a large number of basic R data types. Hence, a package author can keep his data in normal R data structure without having to worry about translation or transfer to C++. At the same time, the data structures can be accessed as easily at the C++ level, and used in the normal manner.
The mapping of data types works in both directions. It is as straightforward to pass data from R to C++, as it is it return data from C++ to R.
Rcpp was initially written by Dominick Samperi to in the context of the RQuantLib package and later released on its own, but had not seen any releases in twenty-four months. I have substantially expanded the documentation, simplified the build structure yet made it easier to use Rcpp from other packages, and started to add some new classes (notably microsecond time types). Rcpp is supported on Windows, Linux and Mac OS X (with special thanks to Simon for some extended help).
More information for Rcpp can be found at the package homepage, the R-forge repository or the package CRAN page.