內聯程式碼編譯
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