c++ - 如何 boost::bind 到 boost::math::pdf?

标签 c++ boost

要获得正态分布的概率密度函数值,您应该这样做

boost::math::normal nd;
std::cout << boost::math::pdf( nd, 0.0 );

例如。我想使用 boost::bind 自己获取 pdf 函数并尝试过

boost::function< double ( double ) > fpdf = boost::bind(
    boost::math::pdf, nd, _1 );

首先。这没有用,显然是因为 boost::math::pdf 是模板化的。

然后我试了一下

boost::function< double ( double ) > fpdf = boost::bind(
    boost::math::pdf< boost::math::normal, double >, nd, _1 );

并得到了典型的 1000 条由大量模板化代码产生的错误消息,其中之一是 compiler error C2784 .

最佳答案

boost::bind 似乎无法推断返回值类型。

试试这个:

boost::function< double ( double ) > fpdf = boost::bind<double>(
  boost::math::pdf< boost::math::normal, double >, nd, _1 );

关于c++ - 如何 boost::bind 到 boost::math::pdf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19520016/

相关文章:

c++ - 如何从 C++ 中的函数返回两个值?

c++ - 随机段错误C++

c++ - 使用 TBB 的一个简单示例

c++ - 为什么未正确推导 boost::fusion 序列中的结构数组成员类型?

c++ - 在带有bool输入的std::function中使用boost变量

boost - Boost累加器中的惰性平均值和即时平均值有什么区别?

c++ - 从 int64_t 变量中提取八位字节

c++ - 从 lua_pcall(L, 0, 0, 0) 获取所有错误

c++ - OpenCV 或 Boost 智能指针

c++ - 我可以在正则表达式中将前瞻断言与 or 运算符一起使用吗?