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

mos*_*ald 0 c++ random c++11

当使用VS2013,看来std::uniform_int_distribution::operator()只是要求Generator模板参数有一个typedef编辑result_type,static minmax功能,以及过载operator().

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

Pet*_*ker 5

该标准规定了Engine26.5.1.4 [rand.req.eng]中的a 的要求,并且各种分布要求您将符合这些要求的内容传递给它们.