我有以下非常简单的代码,它定义了一个类 B,该类将指向 A 类对象的指针作为参数。
如果我将其编译为独立的 C++,该代码可以完美运行,但我无法使用 Rcpp 公开 B 类。我一定是在快要.constructor<A>()结束的时候做错了什么。尝试了 &、* 等的所有组合,但没有任何效果。经过几个小时的尝试,我迷路了。欢迎任何想法。
#include <Rcpp.h>
using namespace Rcpp;
class A {
public:
A(int val_) { val = val_; }
int val;
};
class B {
public:
B(A& ptr_) { ptr = &ptr_; }
int getval() { return (this->ptr->val); }
A *ptr;
};
RCPP_MODULE(module_cpp) {
using namespace Rcpp;
class_<A>("A")
.constructor<int>()
.field("val", &A::val)
;
class_<B>("B")
.constructor<A>()
;
}
Run Code Online (Sandbox Code Playgroud)