ctor_engine_move.pass.cpp (836B)
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 (void)e(); 30 } 31 32 assert(a.base() == e); 33 } 34 }