Add std::initializer_list to the following containers:

* deque
* map
* multimap
* set
* multiset
* list
* slist

Tested on clant and g++
This commit is contained in:
Robert Matusewicz
2014-08-27 17:34:25 +02:00
parent d517cb9f1b
commit f8ebfa472a
10 changed files with 552 additions and 1 deletions
+33
View File
@@ -341,6 +341,36 @@ int test_cont_variants()
return 0;
}
bool test_support_for_initialization_list()
{
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
const std::initializer_list<int> il = {1, 10, 11};
const deque<int> expectedDeque(il.begin(), il.end());
const deque<int> testConstructor = il;
if(testConstructor != expectedDeque)
return false;
deque<int> testAssignmentOperator = {11, 12, 23};
testAssignmentOperator = il;
if(testConstructor != expectedDeque)
return false;
deque<int> testAssignmentMethod = {11, 12, 23};
testAssignmentMethod.assign(il);
if(testConstructor != expectedDeque)
return false;
deque<int> testInsertMethod = {11};
testInsertMethod.insert(testInsertMethod.cbegin(), {12, 23});
if(testConstructor != expectedDeque)
return false;
return true;
#endif
return true;
}
int main ()
{
@@ -396,6 +426,9 @@ int main ()
return 1;
}
if(!test_support_for_initialization_list())
return 1;
////////////////////////////////////
// Emplace testing
////////////////////////////////////