我可以得到一个适用于任何数字类型的模板化均匀分布生成器吗?

Can I get a templated uniform distribution generator which will work for any numeric type?

本文关键字:分布 类型 数字 任何 适用于 一个 我可以      更新时间:2023-10-16

>问题说明了一切。我想要这样的东西:

template <typename T> 
void foo() {
    std::cout << "A random number: " << UniformDistribution<T>.get();
}

它至少适用于以下类型:数字(整数/浮点,有符号/无符号和实数/复数(;枚举;布尔值。我知道 std::uniform_int_distribution 和 std::uniform_real_distribution - 我想要更普遍的模板。

uniform_int_distributionuniform_real_distribution的行为不同;前者分布在参数a,b[a, b]上,而后者分布在 [a, b)上。此外,默认参数值不同; 前者0, numeric_limits<>::max(),后者0, 1

一旦你决定了你对哪种行为感兴趣,你就可以自己编写它;这样的发行版成为标准的一部分是没有意义的。