std::uniform_real_distribution::operator()
是:爲什麼`std :: sample`採用'UniformRandomBitGenerator`作爲&&?
template< class Generator >
result_type operator()(Generator& g);
而std::sample
是:
template< class PopulationIterator, class SampleIterator,
class Distance, class UniformRandomBitGenerator >
SampleIterator sample(PopulationIterator first, PopulationIterator last,
SampleIterator out, Distance n,
UniformRandomBitGenerator&& g);
我只引用uniform_real_distribution
這裏,因爲它是在以一個生成標準的另一個地方,和sample
和std::uniform_real_distribution::operator()
把他們在不同的方法。只是好奇這背後的理由。
對#1:我是不是要暗示的std :: uniform_real_distribution之間'任何關係::運算符()'和'sample'只是它們在標準庫兩個地內搭一臺發電機和他們不要以同樣的方式去做。 #2:我不反對,那爲什麼'std :: uniform_real_distribution :: operator()'也把它放在&&? – David
好像只有上漲(更大的靈活性)才能使分配器以&&生成發送器 – David
@David:答覆已更新。並同意;然而,改變分配方式需要努力,並且沒有人會爲改變而大聲疾呼,所以這項工作不太值得。畢竟,C++是一個志願者的努力。 ; - ] – ildjarn