diff --git a/include/boost/unordered/unordered_map.hpp b/include/boost/unordered/unordered_map.hpp index ff35e345..ef29b70f 100644 --- a/include/boost/unordered/unordered_map.hpp +++ b/include/boost/unordered/unordered_map.hpp @@ -409,9 +409,9 @@ namespace unordered void insert(std::initializer_list); #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1800)) - template + template typename boost::enable_if_c< - boost::is_convertible::value, + boost::is_convertible::value, void>::type insert(std::initializer_list list) { table_.insert_range(list.begin(), list.end()); @@ -903,9 +903,9 @@ namespace unordered void insert(std::initializer_list); #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1800)) - template + template typename boost::enable_if_c< - boost::is_convertible::value, + boost::is_convertible::value, void>::type insert(std::initializer_list list) { table_.insert_range(list.begin(), list.end()); diff --git a/include/boost/unordered/unordered_set.hpp b/include/boost/unordered/unordered_set.hpp index 03c7983c..9cb93cab 100644 --- a/include/boost/unordered/unordered_set.hpp +++ b/include/boost/unordered/unordered_set.hpp @@ -408,9 +408,9 @@ namespace unordered void insert(std::initializer_list); #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1800)) - template + template typename boost::enable_if_c< - boost::is_convertible::value, + boost::is_convertible::value, void>::type insert(std::initializer_list list) { table_.insert_range(list.begin(), list.end()); @@ -888,9 +888,9 @@ namespace unordered void insert(std::initializer_list); #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1800)) - template + template typename boost::enable_if_c< - boost::is_convertible::value, + boost::is_convertible::value, void>::type insert(std::initializer_list list) { table_.insert_range(list.begin(), list.end()); diff --git a/test/unordered/insert_tests.cpp b/test/unordered/insert_tests.cpp index e7a15e11..59911e12 100644 --- a/test/unordered/insert_tests.cpp +++ b/test/unordered/insert_tests.cpp @@ -582,10 +582,10 @@ struct initialize_from_two_ints friend std::size_t hash_value(initialize_from_two_ints const& x) { - return a + b; + return x.a + x.b; } - bool operator==(initialize_from_two_ints const& x) + bool operator==(initialize_from_two_ints const& x) const { return a == x.a && b == x.b; } @@ -604,7 +604,7 @@ UNORDERED_AUTO_TEST(insert_initializer_list_set) set2.insert({1, 2}); BOOST_TEST(set2.size() == 1); BOOST_TEST(set2.find({1,2}) != set2.end()); - BOOST_TEST(set2.find({2,1}) != set2.end()); + BOOST_TEST(set2.find({2,1}) == set2.end()); set2.insert({{3,4},{5,6},{7,8}}); BOOST_TEST(set2.size() == 4); @@ -612,7 +612,7 @@ UNORDERED_AUTO_TEST(insert_initializer_list_set) BOOST_TEST(set2.find({3,4}) != set2.end()); BOOST_TEST(set2.find({5,6}) != set2.end()); BOOST_TEST(set2.find({7,8}) != set2.end()); - BOOST_TEST(set2.find({8,7}) != set2.end()); + BOOST_TEST(set2.find({8,7}) == set2.end()); set2.insert({{2, 1}, {3,4}}); BOOST_TEST(set2.size() == 5); @@ -621,7 +621,7 @@ UNORDERED_AUTO_TEST(insert_initializer_list_set) BOOST_TEST(set2.find({3,4}) != set2.end()); BOOST_TEST(set2.find({5,6}) != set2.end()); BOOST_TEST(set2.find({7,8}) != set2.end()); - BOOST_TEST(set2.find({8,7}) != set2.end()); + BOOST_TEST(set2.find({8,7}) == set2.end()); } UNORDERED_AUTO_TEST(insert_initializer_list_multiset)