add std::initializer_list support for flat_map and flat_multimap

This commit is contained in:
Robert Matusewicz
2014-08-28 09:42:08 +02:00
parent f8ebfa472a
commit e2b815c196
2 changed files with 182 additions and 0 deletions
+38
View File
@@ -389,6 +389,38 @@ int test_map_variants()
return 0;
}
template<typename FlatMapType>
bool test_support_for_initialization_list_for()
{
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
const std::initializer_list<std::pair<int, int>> il
= {std::make_pair(1, 2), std::make_pair(3, 4)};
const FlatMapType expected(il.begin(), il.end());
{
const FlatMapType sil = il;
if (sil != expected)
return false;
const FlatMapType sil_ordered(ordered_unique_range_t{}, il);
if(sil_ordered != expected)
return false;
FlatMapType sil_assign = {std::make_pair(99, 100)};
sil_assign = il;
if(sil_assign != expected)
return false;
}
{
FlatMapType sil;
sil.insert(il);
if(sil != expected)
return false;
}
return true;
#endif
return true;
}
int main()
{
@@ -436,6 +468,12 @@ int main()
return 1;
}
if(!test_support_for_initialization_list_for<flat_map<int, int> >())
return 1;
if(!test_support_for_initialization_list_for<flat_multimap<int, int> >())
return 1;
////////////////////////////////////
// Emplace testing
////////////////////////////////////