| register {cpp4r} | R Documentation |
Generates wrappers for registered C++ functions
Description
Functions decorated with [[cpp4r::register]] in files ending in .cc,
.cpp, .h or .hpp will be wrapped in generated code and registered to
be called from R.
Note registered functions will not be exported from your package unless
you also add a @export roxygen2 directive for them.
Usage
register(path = NULL, quiet = !is_interactive(), extension = c(".cpp", ".cc"))
Arguments
path |
The path to the package root directory. The default is NULL,
|
quiet |
If TRUE suppresses output from this function
|
extension |
The file extension to use for the generated src/cpp4r file.
.cpp by default, but .cc is also supported.
|
Value
The paths to the generated R and C++ source files (in that order).
Examples
# create a minimal package
dir <- tempfile()
dir.create(dir)
writeLines("Package: testPkg", file.path(dir, "DESCRIPTION"))
writeLines("useDynLib(testPkg, .registration = TRUE)", file.path(dir, "NAMESPACE"))
# create a C++ file with a decorated function
dir.create(file.path(dir, "src"))
writeLines("[[cpp4r::register]] int one() { return 1; }", file.path(dir, "src", "one.cpp"))
# register the functions in the package
register(dir)
# Files generated by registration
file.exists(file.path(dir, "R", "cpp4r.R"))
file.exists(file.path(dir, "src", "cpp4r.cpp"))
# cleanup
unlink(dir, recursive = TRUE)