1// Copyright (C) 2008-2015 Free Software Foundation, Inc. 2// 3// This file is part of the GNU ISO C++ Library. This library is free 4// software; you can redistribute it and/or modify it under the 5// terms of the GNU General Public License as published by the 6// Free Software Foundation; either version 3, or (at your option) 7// any later version. 8 9// This library is distributed in the hope that it will be useful, 10// but WITHOUT ANY WARRANTY; without even the implied warranty of 11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12// GNU General Public License for more details. 13 14// You should have received a copy of the GNU General Public License along 15// with this library; see the file COPYING3. If not see 16// <http://www.gnu.org/licenses/>. 17 18// 23.2.2.4 list operations [lib.list.ops] 19 20// NB: This issue affected only debug-mode. 21 22#include <list> 23#include <functional> 24 25// libstdc++/35969 26void test01() 27{ 28 { 29 std::list<int> list1; 30 std::list<int> list2; 31 32 for(int i = 0; i < 10; ++i) 33 { 34 list1.push_back(i); 35 list2.push_back(10 - i); 36 } 37 38 list1.sort(); 39 list2.sort(); 40 41 std::list<int>::iterator node_of_interest = list2.begin(); 42 43 list1.splice(list1.begin(), list2, node_of_interest); 44 list2.splice(list2.begin(), list1, node_of_interest); 45 46 list1.merge(list2); 47 48 list2.splice(list2.begin(), list1, node_of_interest); 49 } 50 51 { 52 std::list<int> list1; 53 std::list<int> list2; 54 55 for(int i = 0; i < 10; ++i) 56 { 57 list1.push_back(i); 58 list2.push_back(10 - i); 59 } 60 61 list1.sort(); 62 list2.sort(); 63 64 std::list<int>::iterator node_of_interest = list2.begin(); 65 66 list1.splice(list1.begin(), list2, node_of_interest); 67 list2.splice(list2.begin(), list1, node_of_interest); 68 69 list1.merge(list2, std::less<int>()); 70 71 list2.splice(list2.begin(), list1, node_of_interest); 72 } 73} 74 75int main() 76{ 77 test01(); 78 return 0; 79} 80