Suppose a I have the following 2 functions in C++:
// [[Rcpp::export]]
SEXP foo() {
int a = 1;
Rcpp::XPtr<int> ptr(&a, true);
return ptr;
}
// [[Rcpp::export]]
int bar(SEXP a){
Rcpp::XPtr<int> x(a);
int b = *x;
return b;
}
I want to be able to call something like the following in R.
Of course, in this example I could return an int
to R in foo
, but in my original code, a
is a somewhat complex data structure and I wan't to return only the pointer to this, so it can be reused by another C++ function called bar
a <- foo()
bar(a)
In this example I expected that bar(a)
returned 1 instead of 0. How can I fix this?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…