19f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson//===----------------------------------------------------------------------===//
29f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson//
39f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson//                     The LLVM Compiler Infrastructure
49f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson//
59f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson// This file is dual licensed under the MIT and the University of Illinois Open
69f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson// Source Licenses. See LICENSE.TXT for details.
79f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson//
89f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson//===----------------------------------------------------------------------===//
99f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson// <map>
119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson// class multimap
139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson// size_type size() const;
159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson#include <map>
179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson#include <cassert>
189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson#include "min_allocator.h"
209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonint main()
229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson{
239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    {
249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    typedef std::multimap<int, double> M;
259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    M m;
269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    assert(m.size() == 0);
279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m.insert(M::value_type(2, 1.5));
289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    assert(m.size() == 1);
299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m.insert(M::value_type(1, 1.5));
309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    assert(m.size() == 2);
319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m.insert(M::value_type(3, 1.5));
329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    assert(m.size() == 3);
339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m.erase(m.begin());
349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    assert(m.size() == 2);
359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m.erase(m.begin());
369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    assert(m.size() == 1);
379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m.erase(m.begin());
389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    assert(m.size() == 0);
399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    }
409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson#if __cplusplus >= 201103L
419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    {
429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    typedef std::multimap<int, double, std::less<int>, min_allocator<std::pair<const int, double>>> M;
439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    M m;
449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    assert(m.size() == 0);
459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m.insert(M::value_type(2, 1.5));
469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    assert(m.size() == 1);
479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m.insert(M::value_type(1, 1.5));
489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    assert(m.size() == 2);
499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m.insert(M::value_type(3, 1.5));
509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    assert(m.size() == 3);
519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m.erase(m.begin());
529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    assert(m.size() == 2);
539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m.erase(m.begin());
549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    assert(m.size() == 1);
559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    m.erase(m.begin());
569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    assert(m.size() == 0);
579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    }
589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson#endif
599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson}
609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson