blob: 7e0fd41d56acb0698f3092f3667ce5c524ef0d45 [file] [log] [blame]
Howard Hinnantbc8d3f92010-05-11 19:42:16 +00001//===----------------------------------------------------------------------===//
2//
Howard Hinnantf5256e12010-05-11 21:36:01 +00003// The LLVM Compiler Infrastructure
Howard Hinnantbc8d3f92010-05-11 19:42:16 +00004//
Howard Hinnantb64f8b02010-11-16 22:09:02 +00005// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
Howard Hinnantbc8d3f92010-05-11 19:42:16 +00007//
8//===----------------------------------------------------------------------===//
9
10// <map>
11
12// class map
13
14// mapped_type& operator[](key_type&& k);
15
16#include <map>
17#include <cassert>
18
Eric Fiselier02bb4bd2015-07-18 23:56:04 +000019#include "test_macros.h"
Marshall Clowdf00d5e2015-01-28 21:22:53 +000020#include "MoveOnly.h"
Marshall Clow061d0cc2013-11-26 20:58:02 +000021#include "min_allocator.h"
Howard Hinnantbc8d3f92010-05-11 19:42:16 +000022
23int main()
24{
Dan Albert1d4a1ed2016-05-25 22:36:09 -070025#if TEST_STD_VER >= 11
Howard Hinnant70342b92013-06-19 21:29:40 +000026 {
Howard Hinnantbc8d3f92010-05-11 19:42:16 +000027 std::map<MoveOnly, double> m;
28 assert(m.size() == 0);
29 assert(m[1] == 0.0);
30 assert(m.size() == 1);
31 m[1] = -1.5;
32 assert(m[1] == -1.5);
33 assert(m.size() == 1);
34 assert(m[6] == 0);
35 assert(m.size() == 2);
36 m[6] = 6.5;
37 assert(m[6] == 6.5);
38 assert(m.size() == 2);
Howard Hinnant70342b92013-06-19 21:29:40 +000039 }
Howard Hinnant70342b92013-06-19 21:29:40 +000040 {
Dan Albert1d4a1ed2016-05-25 22:36:09 -070041 typedef std::pair<MoveOnly, double> V;
Howard Hinnant70342b92013-06-19 21:29:40 +000042 std::map<MoveOnly, double, std::less<MoveOnly>, min_allocator<V>> m;
43 assert(m.size() == 0);
44 assert(m[1] == 0.0);
45 assert(m.size() == 1);
46 m[1] = -1.5;
47 assert(m[1] == -1.5);
48 assert(m.size() == 1);
49 assert(m[6] == 0);
50 assert(m.size() == 2);
51 m[6] = 6.5;
52 assert(m[6] == 6.5);
53 assert(m.size() == 2);
54 }
Dan Albert1d4a1ed2016-05-25 22:36:09 -070055#endif
Howard Hinnantbc8d3f92010-05-11 19:42:16 +000056}