В комментарии говорится, что семантика перемещения не применяется в классах Rcpp.Некоторые разработчики предпочитают писать return std::move(x)
во всех функциях, когда C ++ 11 включен, следующим образом:
NumericVector test(const NumericVector& x) {
NumericVector y(x.size());
for (int i = 0; i < x.size(); i++) {
y[i] = x[i] * 2;
}
return std::move(y);
}
Мне интересно, есть ли какая-либо польза или недостаток в написании кода Rcpp, подобного этому, или какой-либо рискэтот код сталкивается с проблемами, если код более сложный?