param_copy.pass.cpp revision d6d1171f2c3f254582ae1d5b9e14cea0ea8e701b
1d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant//===----------------------------------------------------------------------===// 2d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant// 3d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant// The LLVM Compiler Infrastructure 4d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant// 5d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant// This file is distributed under the University of Illinois Open Source 6d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant// License. See LICENSE.TXT for details. 7d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant// 8d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant//===----------------------------------------------------------------------===// 9d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant 10d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant// <random> 11d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant 12d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant// template<class RealType = double> 13d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant// class piecewise_constant_distribution 14d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant// { 15d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant// class param_type; 16d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant 17d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant#include <random> 18d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant#include <limits> 19d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant#include <cassert> 20d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant 21d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnantint main() 22d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant{ 23d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant { 24d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant typedef std::piecewise_constant_distribution<> D; 25d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant typedef D::param_type P; 26d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant double b[] = {10, 14, 16, 17}; 27d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant double p[] = {25, 62.5, 12.5}; 28d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant const size_t Np = sizeof(p) / sizeof(p[0]); 29d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant P p0(b, b+Np+1, p); 30d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant P p1 = p0; 31d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant assert(p1 == p0); 32d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant } 33d6d1171f2c3f254582ae1d5b9e14cea0ea8e701bHoward Hinnant} 34