【发布时间】:2017-07-01 09:55:06
【问题描述】:
我有两个有关在类中使用分布的相关问题。
-
C++ 中是否存在某种基本分布,以便在不知道将是哪个分布的情况下将分布用作类成员?我不能使用模板(见问题 2)
class Foo{ private: // could by any distribution std::base_distribution dist_; }; -
我有另一个类
Bar,它应该有一个Foo的向量作为私有成员(std::vector<Foo>)。问题是如果Foo使用模板,那么不可能有一个不同模板参数的向量,这正是我想要的。class Bar { private: std::vector<Foo> foo_; };
boost::variant 也无济于事,因为我不知道分布的类型。所以这(例如)在我的情况下是不可能的:
class Bar{
private:
boost::variant<std::normal_distribution<>, std::uniform_real_distribution<> > dists_;
};
【问题讨论】:
-
如果只需要支持一种随机数引擎,
std::function可能就足够了。
标签: c++ class c++11 boost distribution