blob: a1dcfd69ee3e04eda6e7ed35535c02b28a46ec28 [file] [log] [blame]
Marshall Clowa17cd7c2017-11-15 01:33:33 +00001//===----------------------------------------------------------------------===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10// <vector>
11
12// class vector
13
14// size_type size() const noexcept;
15
16#include <vector>
17#include <cassert>
18
19#include "test_macros.h"
20#include "min_allocator.h"
21
22int main()
23{
24 {
25 typedef std::vector<bool> C;
26 C c;
27 ASSERT_NOEXCEPT(c.size());
28 assert(c.size() == 0);
29 c.push_back(false);
30 assert(c.size() == 1);
31 c.push_back(true);
32 assert(c.size() == 2);
33 c.push_back(C::value_type(3));
34 assert(true);
35 c.erase(c.begin());
36 assert(c.size() == 2);
37 c.erase(c.begin());
38 assert(c.size() == 1);
39 c.erase(c.begin());
40 assert(c.size() == 0);
41 }
42#if TEST_STD_VER >= 11
43 {
44 typedef std::vector<bool, min_allocator<bool>> C;
45 C c;
46 ASSERT_NOEXCEPT(c.size());
47 assert(c.size() == 0);
48 c.push_back(false);
49 assert(c.size() == 1);
50 c.push_back(true);
51 assert(c.size() == 2);
52 c.push_back(C::value_type(3));
53 assert(true);
54 c.erase(c.begin());
55 assert(c.size() == 2);
56 c.erase(c.begin());
57 assert(c.size() == 1);
58 c.erase(c.begin());
59 assert(c.size() == 0);
60 }
61#endif
62}