Я пытаюсь создать функцию C ++ через R cpp, которая принимает std:set<int>
в качестве аргумента. Моя цель - добавить / вставить его в список std :: list. Возможно, я упускаю что-то простое, но R cpp, кажется, задыхается, когда я пытаюсь использовать аргумент std::set<int>
.
Рассмотрим следующий воспроизводимый пример:
library(Rcpp)
src1 = '
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
List list_set() {
std::list<std::set<int>> lz;
std::set<int> tset = {10, 20, 30, 40, 50};
lz.push_back(tset);
return wrap(lz);
}
'
sourceCpp(code = src1)
list_set()
src2 = '
// [[Rcpp::export]]
List list_set2(std::set<int> tset) {
std::list<std::set<int>> lz;
lz.push_back(tset);
return wrap(lz);
}
'
sourceCpp(code = src2)
Вывод первой функции - ожидаемая:
> list_set()
[[1]]
[1] 10 20 30 40 50
Вторая функция выдает следующую ошибку при попытке компиляции:
file6e04cf82f25.cpp:3:1: error: 'List' does not name a type
List list_set2(std::set<int> tset)
Примечание: замена List
на std::list<std::set<int>>
также выдает ошибку (думал, что это что-то другое).
Есть ли какое-то простое исправление, о котором я пишу?