diff options
Diffstat (limited to 'test/std/containers/associative/multimap/multimap.modifiers/insert_cv.pass.cpp')
| -rw-r--r-- | test/std/containers/associative/multimap/multimap.modifiers/insert_cv.pass.cpp | 94 | 
1 files changed, 41 insertions, 53 deletions
diff --git a/test/std/containers/associative/multimap/multimap.modifiers/insert_cv.pass.cpp b/test/std/containers/associative/multimap/multimap.modifiers/insert_cv.pass.cpp index d9afc9d0fdf0e..53874311c7826 100644 --- a/test/std/containers/associative/multimap/multimap.modifiers/insert_cv.pass.cpp +++ b/test/std/containers/associative/multimap/multimap.modifiers/insert_cv.pass.cpp @@ -16,66 +16,54 @@  #include <map>  #include <cassert> +#include "test_macros.h"  #include "min_allocator.h" -int main() -{ -    { -        typedef std::multimap<int, double> M; -        typedef M::iterator R; -        M m; -        R r = m.insert(M::value_type(2, 2.5)); -        assert(r == m.begin()); -        assert(m.size() == 1); -        assert(r->first == 2); -        assert(r->second == 2.5); +template <class Container> +void do_insert_test() { +    typedef Container M; +    typedef typename M::iterator R; +    typedef typename M::value_type VT; +    M m; +    const VT v1(2, 2.5); +    R r = m.insert(v1); +    assert(r == m.begin()); +    assert(m.size() == 1); +    assert(r->first == 2); +    assert(r->second == 2.5); -        r = m.insert(M::value_type(1, 1.5)); -        assert(r == m.begin()); -        assert(m.size() == 2); -        assert(r->first == 1); -        assert(r->second == 1.5); +    const VT v2(1, 1.5); +    r = m.insert(v2); +    assert(r == m.begin()); +    assert(m.size() == 2); +    assert(r->first == 1); +    assert(r->second == 1.5); -        r = m.insert(M::value_type(3, 3.5)); -        assert(r == prev(m.end())); -        assert(m.size() == 3); -        assert(r->first == 3); -        assert(r->second == 3.5); +    const VT v3(3, 3.5); +    r = m.insert(v3); +    assert(r == prev(m.end())); +    assert(m.size() == 3); +    assert(r->first == 3); +    assert(r->second == 3.5); -        r = m.insert(M::value_type(3, 3.5)); -        assert(r == prev(m.end())); -        assert(m.size() == 4); -        assert(r->first == 3); -        assert(r->second == 3.5); +    const VT v4(3, 3.5); +    r = m.insert(v4); +    assert(r == prev(m.end())); +    assert(m.size() == 4); +    assert(r->first == 3); +    assert(r->second == 3.5); +} + +int main() +{ +    { +        typedef std::multimap<int, double> Container; +        do_insert_test<Container>();      } -#if __cplusplus >= 201103L +#if TEST_STD_VER >= 11      { -        typedef std::multimap<int, double, std::less<int>, min_allocator<std::pair<const int, double>>> M; -        typedef M::iterator R; -        M m; -        R r = m.insert(M::value_type(2, 2.5)); -        assert(r == m.begin()); -        assert(m.size() == 1); -        assert(r->first == 2); -        assert(r->second == 2.5); - -        r = m.insert(M::value_type(1, 1.5)); -        assert(r == m.begin()); -        assert(m.size() == 2); -        assert(r->first == 1); -        assert(r->second == 1.5); - -        r = m.insert(M::value_type(3, 3.5)); -        assert(r == prev(m.end())); -        assert(m.size() == 3); -        assert(r->first == 3); -        assert(r->second == 3.5); - -        r = m.insert(M::value_type(3, 3.5)); -        assert(r == prev(m.end())); -        assert(m.size() == 4); -        assert(r->first == 3); -        assert(r->second == 3.5); +        typedef std::multimap<int, double, std::less<int>, min_allocator<std::pair<const int, double>>> Container; +        do_insert_test<Container>();      }  #endif  }  | 
