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