为什么std :: uniform_int_distribution <IntType> :: operator()不是const?

时间:2019-10-01 21:27:25

标签: c++ random const c++-standard-library

据我了解,分配用于拉随机数时不应更改。例如,对于均匀分布,当我们使用它生成随机数时,其最小值/最大值不应改变,那么为什么operator()不是常量?

1 个答案:

答案 0 :(得分:7)

虽然min()max()不会改变,但分布可能包含有助于其生成下一个值的状态。如果operator()const,则必须保证对象是线程安全的,否则无法修改此状态。提供这种保证可能是昂贵的,并且发行意味着重量轻。

相关问题