Rcpp를 사용하여 C++ 스크립트에 대한 R 바인딩을 쓰려고합니다. 함수 중 하나는 std::shared_ptr object
입니다. std::shared_ptr
obj를 초기화하고 R 측에 Rcpp::XPtr
객체로 반환하는 것은 어렵습니다.std :: shared_ptr 개체 만들기 및 R쪽으로 반환 (Rcpp)
#include <iostream>
#include <memory>
#include <Rcpp.h>
using namespace Rcpp;
using std::cout;
class TestClass {
public:
int value;
TestClass(int initial_val) {
value = initial_val;
};
};
//[[Rcpp::export]]
SEXP get_test_obj() {
Rcpp::XPtr<std::shared_ptr<TestClass>> ptr(std::make_shared<TestClass>(5), true);
return ptr;
};
그러나 다음과 같은 오류 얻을 :
나는 (최소한의 예) 해봤이 작업을 수행하는 방법에 대한
no matching function for call to 'Rcpp::XPtr<std::shared_ptr<TestClass> >::XPtr(std::shared_ptr<TestClass>, bool)'
어떤 아이디어? 아니면 내가 잘못 생각할 것인가?
'Rcpp :: XPtr'를 사용하여 몇 가지 프로젝트가 있습니다, 그들이하는 일을 더 자세히 보면서 여기서 당신을 도울 수 있습니까? –
그리고 [Rcpp :: XPtr'을 보여주는 다른 질문들이 많이 있습니다.] (http://stackoverflow.com/search?q=%5Brcpp%5D+XPtr). –