| 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. Decorating a function only makes it
callable via '.Call()'; it does not export or document it. See the
"Package skeleton" vignette for how to export a registered function.
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)