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"))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"))
#> [1] TRUE
file.exists(file.path(dir, "src", "cpp4r.cpp"))
#> [1] TRUE
# cleanup
unlink(dir, recursive = TRUE)