1 //===----------------------------------------------------------------------===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is dual licensed under the MIT and the University of Illinois Open 6 // Source Licenses. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 // <random> 11 12 // template<class Engine, size_t k> 13 // class shuffle_order_engine 14 15 // explicit shuffle_order_engine(const Engine& e); 16 17 #include <random> 18 #include <cassert> 19 20 int main() 21 { 22 { 23 typedef std::minstd_rand0 Engine; 24 typedef std::knuth_b Adaptor; 25 Engine e; 26 Engine e0 = e; 27 Adaptor a(std::move(e0)); 28 for (unsigned k = 0; k <= Adaptor::table_size; ++k) 29 e(); 30 assert(a.base() == e); 31 } 32 } 33