У меня проблема при использовании Rcpp на Mac (в Windows проблема не возникает).
Вот код C ++, который вызывает ошибку.
#include <Rcpp.h>
using namespace Rcpp;
NumericVector vecpow(const IntegerVector base, const NumericVector exp)
{
NumericVector out(base.size());
std::transform(base.begin(), base.end(), exp.begin(), out.begin(), ::pow);
return out;
}
Кажется, ничего особенного или сложного.
Тем не менее, я получаю следующую ошибку при попытке скомпилировать ее:
na_ma.cpp: 7: 3: ошибка: нет подходящей функции для вызова 'transform'
std :: transform (base.begin (), base.end (), exp.begin (), out.begin (), :: pow);
^ ~~~~~~~~~~~~~
/ Библиотека / Разработчик / CommandLineTools / usr / include / c ++ / v1 / алгоритм: 2028: 1: примечание: шаблон функции-кандидата недопустим: требуется 4 аргумента, но было предоставлено 5
преобразование (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _UnaryOperation __op)
^
Мне интересно, как это исправить. При поиске решений я пришел к некоторым предложениям создать файл Makevars, но у меня это не сработало.
Было бы также неплохо, если бы кто-нибудь мог объяснить мне, почему эта ошибка происходит, поскольку я ее не понимаю.