将非标准引擎传递给uniform_int_distribution是否有效?

时间:2013-08-03 21:14:57

标签: c++ c++11 random

使用VS2013时,std::uniform_int_distribution::operator()似乎只要求Generator模板参数包含typedef ed result_typestatic minmax函数以及重载operator()

我有一个包含STL中定义的随机数引擎的类,从外部来看,我的包装类和内部包装的引擎之间没有区别。我想使用我的包装类作为Generator参数,但我不知道标准是否指定只有已知的生成器是有效的,或者它是否保留uniform_int_distribution的实现未指定,我不能依赖VS2013的实施细节。

1 个答案:

答案 0 :(得分:5)

该标准规定了26.5.1.4 [rand.req.eng]中Engine的要求,各种发行版要求您传递符合这些要求的内容。