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

Why is std::uniform_int_distribution<IntType>::operator() not const?

据我了解,当用于拉取随机数时,分布不应该改变。例如,对于均匀分布,它的 min/max 不应该随着我们使用它来生成随机数而改变,那么为什么 operator() 不是 const?

虽然 min()max() 不会改变,但分布可能包含帮助它生成下一个值的状态。如果 operator()const 则在不保证对象是线程安全的情况下无法修改此状态。提供担保可能会很昂贵,而发行版应该是轻量级的。