1 //===----------------------------------------------------------------------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 // <queue> 10 11 // void swap(queue& q); 12 13 #include <queue> 14 #include <cassert> 15 16 template <class C> 17 C 18 make(int n) 19 { 20 C c; 21 for (int i = 0; i < n; ++i) 22 c.push(i); 23 return c; 24 } 25 26 int main(int, char**) 27 { 28 std::queue<int> q1 = make<std::queue<int> >(5); 29 std::queue<int> q2 = make<std::queue<int> >(10); 30 std::queue<int> q1_save = q1; 31 std::queue<int> q2_save = q2; 32 q1.swap(q2); 33 assert(q1 == q2_save); 34 assert(q2 == q1_save); 35 36 return 0; 37 } 38