brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · 159487e Raw
75 lines · cpp
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9// <set>10 11// class set12 13// iterator insert(const_iterator position, const value_type& v);14 15#include <set>16#include <cassert>17 18#include "test_macros.h"19#include "min_allocator.h"20 21int main(int, char**) {22  {23    typedef std::set<int> M;24    typedef M::iterator R;25    M m;26    R r = m.insert(m.cend(), M::value_type(2));27    assert(r == m.begin());28    assert(m.size() == 1);29    assert(*r == 2);30 31    r = m.insert(m.cend(), M::value_type(1));32    assert(r == m.begin());33    assert(m.size() == 2);34    assert(*r == 1);35 36    r = m.insert(m.cend(), M::value_type(3));37    assert(r == std::prev(m.end()));38    assert(m.size() == 3);39    assert(*r == 3);40 41    r = m.insert(m.cend(), M::value_type(3));42    assert(r == std::prev(m.end()));43    assert(m.size() == 3);44    assert(*r == 3);45  }46#if TEST_STD_VER >= 1147  {48    typedef std::set<int, std::less<int>, min_allocator<int>> M;49    typedef M::iterator R;50    M m;51    R r = m.insert(m.cend(), M::value_type(2));52    assert(r == m.begin());53    assert(m.size() == 1);54    assert(*r == 2);55 56    r = m.insert(m.cend(), M::value_type(1));57    assert(r == m.begin());58    assert(m.size() == 2);59    assert(*r == 1);60 61    r = m.insert(m.cend(), M::value_type(3));62    assert(r == std::prev(m.end()));63    assert(m.size() == 3);64    assert(*r == 3);65 66    r = m.insert(m.cend(), M::value_type(3));67    assert(r == std::prev(m.end()));68    assert(m.size() == 3);69    assert(*r == 3);70  }71#endif72 73  return 0;74}75