使用Rcpp时,我想使用函数abs
,我只写Rcpp::abs(-1)
,但总是出错:
没有匹配函数来调用abs
实际上,当我写Rcpp:ab
时,有一些暗示存在Rcpp::abs()
。我尝试过其他一些函数Rcpp::NumericVector
,它有效。我知道我可以使用std::abs(-1)
,我只是想知道为什么Rcpp::abs(-1)
不起作用,我的系统是windows,我安装了Rtools。
答案 0 :(得分:1)
Rcpp::abs()
需要 Rcpp 对象,例如*Vector
和*Matrix
。
不幸的是,-1
属于原始类型,例如不 Rcpp 对象。
因此,以下方法可行:
#include <Rcpp.h>
// [[Rcpp::export]]
void show_rcpp_abs() {
Rcpp::NumericVector A = NumericVector::create(-1);
Rcpp::Rcout << "A" << Rcpp::abs(A) << std::endl;
double B = std::abs(-1.0);
Rcpp::Rcout << "B" << B << std::endl;
}