Я бы хотел, чтобы через функцию можно было изменить часть Rcpp::List
. Поскольку Rcpp::List
является указателем на некоторые данные R, я подумал, что можно будет сделать что-то вроде этого:
void modifyList(Rcpp::List l) {
l["x"] = "x";
}
// [[Rcpp::export]]
Rcpp::List rcppTest() {
Rcpp::List res;
res["a"] = Rcpp::List::create();
modifyList(res["a"]);
return res;
}
Я ожидал получить в качестве возвращаемого значения rcppTest
список с элементом "x" значения "x". Однако возвращенный список пуст.
Если вместо этого я использую подпись modifyList(Rcpp::List& l)
, я получаю ошибку компиляции
rcppTest.cpp:17:6: note: candidate function not viable: no known conversion from 'Rcpp::Vector<19, PreserveStorage>::NameProxy' (aka 'generic_name_proxy<19, PreserveStorage>') to 'Rcpp::List &' (aka 'Vector<19> &') for 1st argument
Как я могу изменить часть Rcpp::List
с помощью функции?