编译错误:没有匹配类型的对象的调用函数

时间:2019-03-06 23:14:19

标签: c++ templates rstan

我具有以下代码来进行集成,但出现上述错误。头文件是:

#ifndef cppnew_hpp
#define cppnew_hpp

#include <boost/math/distributions/normal.hpp>
#include <stan/math.hpp>
#include <vector>
#include <iostream>
#include <limits>
#include <sstream>

stan::math::var partC( const double& a, const double& b, std::vector<double> theta, std::ostream& msgs) {
    auto f2 = [&](const double x, const double xc, const std::vector<var> theta,  std::vector<double> x_r, std::vector<int> x_i,  std::ostream& msgs) {
        return (( 0.5 * erfc(-(theta[0]-(theta[1]+theta[2]*exp(- theta[3]* pow((7.0+log(x)),theta[4]))))/(theta[5]*sqrt(2.0))));
    };

    const double tolerance = std::sqrt(std::numeric_limits<double>::epsilon());
    auto Q = stan::math::integrate_1d(f2, a, b, theta,{},{}, msgs, tolerance);
    return Q;
}


#endif /* cppnew_hpp */

但是我得到了错误:

  

/Library/Frameworks/R.framework/Versions/3.5/Resources/library/StanHeaders/include/stan/math/prim/arr/functor/integrate_1d.hpp:60:14:错误:没有用于调用的匹配功能类型'const std :: __ 1 :: __ bind_r&的对象,const std :: __ 1 :: placeholders :: __ ph <2>&const std :: __ 1 :: vector>&,const std :: __ 1 :: vector> &,const std :: __ 1 :: vector>&,std :: __ 1 :: reference_wrapper>>'         返回f(x,std :: numeric_limits :: quiet_NaN());

我不明白自己在做什么错。我是使用C ++的新手。因此任何帮助将不胜感激。

0 个答案:

没有答案