Rcpp::interfaces
attribute is added to a C++ source file to specify which languages to generate bindings for from exported functions. For example:
// [[Rcpp::interfaces(r, cpp)]]
r
and cpp
, and more than one interface can be specified.
Rcpp::interfaces
attribute is used to determine which bindings to generate for exported functions. The default behavior if no Rcpp::interfaces
attribute is specified is to generate only an R interface.
When cpp
bindings are requested code is generated as follows:inst/include
directory of the package using the naming convention PackageName_RcppExports.h
R_RegisterCCallable
and R_GetCCallable
functions).
For example, an exported C++ function foo
could be called from package MyPackage
as follows:
// [[Rcpp::depends(MyPackage)]]
#include
void foo() { MyPackage::bar(); }
The above example assumes that the sourceCpp
function will be used to compile the code. If rather than that you are building a package then you don't need to include the Rcpp::depends
attribute, but instead should add an entry for the referenced package in the Depends
and LinkingTo
fields of your package's DESCRIPTION
file.
compileAttributes
, Rcpp::export
, Rcpp::depends
## Not run:
#
# // [[Rcpp::interfaces(r, cpp)]]
# ## End(Not run)
Run the code above in your browser using DataLab