plugins {inline} | R Documentation |
Plugin system for cxxfunction
Description
cxxfunction
uses a plugin system to assembly the
code that it compiles. These functions allow to register and get
plugins by their name.
Usage
getPlugin(name, ...)
registerPlugin(name, plugin)
Arguments
name |
name of the plugin. |
... |
Further argments to pass to the plugin. |
plugin |
plugin function. |
Details
plugins are functions that return a list with :
- includes
mandatory. it is included at the top of the compiled file by
cxxfunction
- body
optional. a function that takes one argument (the body of the c++ function) and returned a modified version of the body. The "Rcpp" plugin uses this to surround the code with the
BEGIN_RCPP
andEND_RCPP
macros- LinkingTo
optional. character vector containing the list of packages that the code needs to link to. This adds the include path of the given packages. The "Rcpp" and "RcppArmadillo" plugins use this.
- env
optional. named list of environment variables. For example, the "Rcpp" plugin uses this to add Rcpp user library to the
PKG_LIBS
environment variable.
plugins can be manually registered using the registerPlugin
function. Alternatively, a package may supply an inline plugin
implicitely by defining a function called inlineCxxPlugin
, which
does not necessarily need to be exported from the namespace of the package.
Known packages implementing this scheme include Rcpp
and
RcppArmadillo
.
Value
getPlugin
retrieves the plugin and invokes it with the
... arguments
registerPlugin
does not return anything.
See Also
Examples
## Not run:
getPlugin( "Rcpp" )
## End(Not run)