Learn R Programming

cpp4r (version 0.4.0)

register: 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"))

Value

The paths to the generated R and C++ source files (in that order).

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.

Examples

Run this code
# 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)

Run the code above in your browser using DataLab