15a83710eSEric Fiselier //===----------------------------------------------------------------------===//
25a83710eSEric Fiselier //
357b08b09SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
457b08b09SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
557b08b09SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
65a83710eSEric Fiselier //
75a83710eSEric Fiselier //===----------------------------------------------------------------------===//
85a83710eSEric Fiselier
95a83710eSEric Fiselier // <map>
105a83710eSEric Fiselier
115a83710eSEric Fiselier // class multimap
125a83710eSEric Fiselier
13934e9a39SMarshall Clow // void clear() noexcept;
145a83710eSEric Fiselier
155a83710eSEric Fiselier #include <map>
165a83710eSEric Fiselier #include <cassert>
175a83710eSEric Fiselier
18934e9a39SMarshall Clow #include "test_macros.h"
195a83710eSEric Fiselier #include "min_allocator.h"
205a83710eSEric Fiselier
main(int,char **)21*2df59c50SJF Bastien int main(int, char**)
225a83710eSEric Fiselier {
235a83710eSEric Fiselier {
245a83710eSEric Fiselier typedef std::multimap<int, double> M;
255a83710eSEric Fiselier typedef std::pair<int, double> P;
265a83710eSEric Fiselier P ar[] =
275a83710eSEric Fiselier {
285a83710eSEric Fiselier P(1, 1.5),
295a83710eSEric Fiselier P(2, 2.5),
305a83710eSEric Fiselier P(3, 3.5),
315a83710eSEric Fiselier P(4, 4.5),
325a83710eSEric Fiselier P(5, 5.5),
335a83710eSEric Fiselier P(6, 6.5),
345a83710eSEric Fiselier P(7, 7.5),
355a83710eSEric Fiselier P(8, 8.5),
365a83710eSEric Fiselier };
375a83710eSEric Fiselier M m(ar, ar + sizeof(ar)/sizeof(ar[0]));
385a83710eSEric Fiselier assert(m.size() == 8);
39934e9a39SMarshall Clow ASSERT_NOEXCEPT(m.clear());
405a83710eSEric Fiselier m.clear();
415a83710eSEric Fiselier assert(m.size() == 0);
425a83710eSEric Fiselier }
43f2f2a639SEric Fiselier #if TEST_STD_VER >= 11
445a83710eSEric Fiselier {
455a83710eSEric Fiselier typedef std::multimap<int, double, std::less<int>, min_allocator<std::pair<const int, double>>> M;
465a83710eSEric Fiselier typedef std::pair<int, double> P;
475a83710eSEric Fiselier P ar[] =
485a83710eSEric Fiselier {
495a83710eSEric Fiselier P(1, 1.5),
505a83710eSEric Fiselier P(2, 2.5),
515a83710eSEric Fiselier P(3, 3.5),
525a83710eSEric Fiselier P(4, 4.5),
535a83710eSEric Fiselier P(5, 5.5),
545a83710eSEric Fiselier P(6, 6.5),
555a83710eSEric Fiselier P(7, 7.5),
565a83710eSEric Fiselier P(8, 8.5),
575a83710eSEric Fiselier };
585a83710eSEric Fiselier M m(ar, ar + sizeof(ar)/sizeof(ar[0]));
595a83710eSEric Fiselier assert(m.size() == 8);
60934e9a39SMarshall Clow ASSERT_NOEXCEPT(m.clear());
615a83710eSEric Fiselier m.clear();
625a83710eSEric Fiselier assert(m.size() == 0);
635a83710eSEric Fiselier }
645a83710eSEric Fiselier #endif
65*2df59c50SJF Bastien
66*2df59c50SJF Bastien return 0;
675a83710eSEric Fiselier }
68