1a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant//===----------------------------------------------------------------------===// 2a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant// 3a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant// The LLVM Compiler Infrastructure 4a64111c95ac2e7bc337def0426d512c81307c166Howard 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. 7a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant// 8a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant//===----------------------------------------------------------------------===// 9a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant 10a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant// <random> 11a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant 12a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant// template<class RealType = double> 13a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant// class normal_distribution 14a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant 15a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant// template <class CharT, class Traits, class RealType> 16a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant// basic_ostream<CharT, Traits>& 17a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant// operator<<(basic_ostream<CharT, Traits>& os, 18a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant// const normal_distribution<RealType>& x); 19a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant 20a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant// template <class CharT, class Traits, class RealType> 21a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant// basic_istream<CharT, Traits>& 22a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant// operator>>(basic_istream<CharT, Traits>& is, 23a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant// normal_distribution<RealType>& x); 24a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant 25a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant#include <random> 26a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant#include <sstream> 27a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant#include <cassert> 28a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant 29a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnantint main() 30a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant{ 31a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant { 32a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant typedef std::normal_distribution<> D; 33a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant D d1(7, 5); 34a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant std::ostringstream os; 35a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant os << d1; 36a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant std::istringstream is(os.str()); 37a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant D d2; 38a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant is >> d2; 39a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant assert(d1 == d2); 40a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant } 41a64111c95ac2e7bc337def0426d512c81307c166Howard Hinnant} 42