首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有已知的从‘std::exponential_distribution<double>(*)(Double)’到‘std::exponential_distribution<double>*’的参数转换

没有已知的从‘std::exponential_distribution<double>(*)(Double)’到‘std::exponential_distribution<double>*’的参数转换
EN

Stack Overflow用户
提问于 2015-10-27 00:27:14
回答 1查看 131关注 0票数 0

我不太理解g++抛给我的这个错误。

std::exponential_distribution<double> (*)(double)std::exponential_distribution<double>*有什么区别?

第二个显然是一个指向带有模板参数<double>std::exponential_distribution的指针,但是第一个是什么呢?

以下是导致问题的代码:

首先是函数原型

代码语言:javascript
复制
simulation(std::mt19937_64 *mt19937_64_pointer,
           std::uniform_real_distribution<double> *uniform_real_dis_p,
           std::exponential_distribution<double> *exp_dis_p)
{
    ...
}

以及调用此函数的代码:

代码语言:javascript
复制
std::mt19937_64 *gen_p = nullptr; // <-- this used to be: *&gen_p - hence the problem
    // Actually it isn't equal to nullptr - this is set elsewhere in the code

std::uniform_real_distribution<double> uniform_real_dis(0.0, 1.0);
std::exponential_distribution<double> exp_dis(1.0);

simulation s(gen_p, &uniform_real_dis, &exp_dis);

这是一个有点奇怪的错误-如果我完全理解了它的含义,我相信我可以修复它。对我来说,均匀分布是有效的,而指数分布是无效的,这似乎很奇怪。

EN

回答 1

Stack Overflow用户

发布于 2015-10-27 01:02:52

您已经从注释中得到了答案,但仅供记录,std::exponential_distribution<double> (*)(double)是一个函数指针类型:一个接受一个double并返回一个std::exponential_distribution<double>的函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33350790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档