
XPtr
with a C++ ImplementationDynamically define an XPtr
with C++ source code. Compiles and links a shared
library with bindings to the C++ function using cppFunction
,
then returns an XPtr
that points to the function and can be used to be
plugged into another C++ backend.
cppXPtr(
code,
depends = character(),
plugins = character(),
includes = character(),
rebuild = FALSE,
cacheDir = getOption("rcpp.cache.dir", tempdir()),
showOutput = verbose,
verbose = getOption("verbose")
)
Source code for the function definition.
Character vector of packages that the compilation depends on. Each package listed will first be queried for an inline plugin to determine header files to include. If no plugin is defined for the package then a header file based the package's name (e.g. PkgName.h
) will be included.
Character vector of inline plugins to use for the compilation.
Character vector of user includes (inserted after the includes provided by depends
).
Force a rebuild of the shared library.
Directory to use for caching shared libraries. If the underlying code passed to sourceCpp
has not changed since the last invocation then a cached version of the shared library is used. The default value of tempdir()
results in the cache being valid only for the current R session. Pass an alternate directory to preserve the cache across R sessions.
TRUE
to print R CMD SHLIB
output to the console.
TRUE
to print detailed information about generated code to the console.
An object of class XPtr
that points to the compiled function.
# NOT RUN {
# takes time to compile
ptr <- cppXPtr("double foo(int a, double b) { return a + b; }")
class(ptr)
print(ptr)
# }
Run the code above in your browser using DataLab