Код: Выделить всё
// [[Rcpp::plugins(cpp20)]]
#include
#include
// [[Rcpp::export]]
Rcpp::XPtr stack_c(Rcpp::IntegerVector& v) {
std::stack* s = new std::stack;
s->push(v[0]);
Rcpp::XPtr p(s);
return p;
}
Пакет R содержит упомянутый файл C++ и файл Makevars со строкой CXX_STD = CXX20 в каталоге src.< /p>
Файл R в каталоге R вызывает функцию.
Код: Выделить всё
#' @export
stack_r = 1.0.13)
LinkingTo: Rcpp
Код: Выделить всё
RcppExports.cpp:14:18: error: 'stack' is not a member of 'std'
14 | Rcpp::XPtr< std::stack > create_stack(Rcpp::IntegerVector& v);
| ^~~~~
RcppExports.cpp:5:1: note: 'std::stack' is defined in header ''; did you forget to '#include '?
Нужно ли мне устанавливать другие флаги компилятора?
Я использую Windows 11 с последними версиями Rtools, R и Rcpp.
Подробнее здесь: https://stackoverflow.com/questions/791 ... lude-stack