(root)/
gcc-13.2.0/
libstdc++-v3/
testsuite/
23_containers/
list/
modifiers/
swap/
1.h
       1  // Copyright (C) 2004-2023 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  #include <algorithm>
      19  #include <testsuite_hooks.h>
      20   
      21  struct T { int i; };
      22  
      23  int swap_calls;
      24  
      25  // Should use list specialization for swap.
      26  template<typename _Tp>
      27  void 
      28  swap11()
      29  {
      30    typedef _Tp list_type;
      31  
      32    list_type A;
      33    list_type B;
      34    swap_calls = 0;
      35    std::swap(A, B);
      36    VERIFY(1 == swap_calls);
      37  }
      38  
      39  // Should use list specialization for swap.
      40  template<typename _Tp>
      41  void 
      42  swap12()
      43  {
      44    using namespace std;
      45    typedef _Tp list_type;
      46  
      47    list_type A;
      48    list_type B;
      49    swap_calls = 0;
      50    swap(A, B);
      51    VERIFY(1 == swap_calls);
      52  }
      53  
      54  #if !__GXX_WEAK__ && _MT_ALLOCATOR_H
      55  template class __gnu_cxx::__mt_alloc<std::_List_node<T> >;
      56  #endif