default.pass.cpp revision f39daa8e5a5f7d7eb19f391497a29b4fa0eec28d
1f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant//===----------------------------------------------------------------------===//
2f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant//
3f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant//                     The LLVM Compiler Infrastructure
4f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant//
5f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant// This file is distributed under the University of Illinois Open Source
6f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant// License. See LICENSE.TXT for details.
7f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant//
8f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant//===----------------------------------------------------------------------===//
9f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant
10f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant// <future>
11f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant
12f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant// class promise<R>
13f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant
14f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant// promise();
15f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant
16f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant#include <future>
17f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant#include <cassert>
18f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant
19f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnantint main()
20f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant{
21f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant    {
22f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant        std::promise<int> p;
23f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant        std::future<int> f = p.get_future();
24f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant        assert(f.valid());
25f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant    }
26f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant    {
27f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant        std::promise<int&> p;
28f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant        std::future<int&> f = p.get_future();
29f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant        assert(f.valid());
30f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant    }
31f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant    {
32f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant        std::promise<void> p;
33f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant        std::future<void> f = p.get_future();
34f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant        assert(f.valid());
35f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant    }
36f39daa8e5a5f7d7eb19f391497a29b4fa0eec28dHoward Hinnant}
37