内联代码编译

Rcpp 具有两个函数,可以直接将代码编译内联和导出到 R:cppFunction()evalCpp()。第三个函数叫做 sourceCpp(),用于在单独的文件中读取 C++代码,虽然可以使用类似于 cppFunction()

下面是在 R 中编译 C++函数的示例。注意使用 "" 包围源。

# Note - This is R code.
# cppFunction in Rcpp allows for rapid testing.
require(Rcpp)

# Creates a function that multiples each element in a vector
# Returns the modified vector.
cppFunction("
NumericVector exfun(NumericVector x, int i){
x = x*i;
return x;
}")

# Calling function in R
exfun(1:5, 3)

要快速了解 C++表达式,请使用:

# Use evalCpp to evaluate C++ expressions
evalCpp("std::numeric_limits<double>::max()")
## [1] 1.797693e+308