diff --git a/test/unordered/transparent_tests.cpp b/test/unordered/transparent_tests.cpp index 50ec0ee3..b52f31d1 100644 --- a/test/unordered/transparent_tests.cpp +++ b/test/unordered/transparent_tests.cpp @@ -521,6 +521,14 @@ template void test_non_transparent_equal_range() } template struct convertible_to_iterator +{ + operator typename UnorderedMap::iterator() + { + return typename UnorderedMap::iterator(); + } +}; + +template struct convertible_to_const_iterator { operator typename UnorderedMap::const_iterator() { @@ -539,6 +547,15 @@ transparent_unordered_map::iterator erase_overload_compile_test() { convertible_to_iterator c; transparent_unordered_map map; + transparent_unordered_map::iterator pos = map.begin(); + pos = c; + return map.erase(c); +} + +transparent_unordered_map::const_iterator erase_const_overload_compile_test() +{ + convertible_to_const_iterator c; + transparent_unordered_map map; transparent_unordered_map::const_iterator pos = map.begin(); pos = c; return map.erase(c); @@ -624,9 +641,9 @@ template void test_non_transparent_erase() // still invoke the correct iterator overloads when the type is implicitly // convertible // -transparent_unordered_map::node_type extract_overload_compile_test() +transparent_unordered_map::node_type extract_const_overload_compile_test() { - convertible_to_iterator c; + convertible_to_const_iterator c; transparent_unordered_map map; transparent_unordered_map::const_iterator pos = map.begin(); pos = c;