提升功能签名

时间:2012-05-31 12:32:16

标签: c++ function boost signature

有人可以使用boost的正态分布告诉我这段代码发生了什么吗?

boost::mt19937 rng; // A random number generator
boost::normal_distribution<> nd(3.0, 1.0); // mean 3, sigma 1
// Attach the distribution to the random number generator to get a function
// that returns normally distributed variables.
boost::variate_generator<boost::mt19937&,boost::normal_distribution<> > var_nor(rng, nd);
// Use it. But why is function signature different?
double x = var_nor();

我对var_nor及其两个函数签名发生了什么感到困惑。 谢谢 皮特

1 个答案:

答案 0 :(得分:5)

var_nor不是一个函数,它是一个对象。

第一行创建它(将rng和distribution作为参数传递给构造函数) 第二行调用其operator()成员。