13ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant//===----------------------------------------------------------------------===// 23ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant// 33ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant// The LLVM Compiler Infrastructure 43ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant// 5b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// This file is dual licensed under the MIT and the University of Illinois Open 6b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnant// Source Licenses. See LICENSE.TXT for details. 73ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant// 83ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant//===----------------------------------------------------------------------===// 93ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant 103ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant// <random> 113ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant 123ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant// template<class Engine, size_t p, size_t r> 133ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant// class discard_block_engine 143ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant 153ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant// explicit discard_block_engine(const Engine& e); 163ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant 173ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant#include <random> 183ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant#include <cassert> 193ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant 203ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnantint main() 213ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant{ 223ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant { 233ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant typedef std::ranlux24_base Engine; 243ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant typedef std::ranlux24 Adaptor; 253ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant Engine e; 263ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant Engine e0 = e; 273ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant Adaptor a(std::move(e0)); 283ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant assert(a.base() == e); 293ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant } 303ec31849dfebedd223d6c1ab4271afe67ef1c8e8Howard Hinnant} 31