【发布时间】:2018-05-22 10:10:08
【问题描述】:
使用 Rcpp 包在 R 中包含 C++,我尝试编译我的 C++ 文件。这是出现的错误:
命名空间'std'中的'function'没有命名模板类型
经过调查,我被告知我的代码使用了一些只能从 C++ 11 获得的功能。所以我需要在我的 Makevars 文件中添加一行。但是,我发现一个小插图说 Makevars 不再是强制性的:Rcpp vignette。我该如何解决这个问题?
这是 C++ 脚本中不起作用的部分:
std::function<void(const state_type, state_type, const double)> eqsir2(const Rcpp::NumericVector theta) {
return [&theta](const state_type &x, state_type &dxdt, const double t) {
boost_array_to_nvec2(x, nvec);
my_fun22(nvec,t,theta);
nvec_to_boost_array2(nvec, dxdt);
}
【问题讨论】:
-
你加入了
<functional>吗? -
没有。我应该在哪里包含它?
-
在您的 C++ 文件中,其余的 C++ 代码所在的位置使用
std::function。