(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
modules/
pr99283-7-traits.h
       1  template<typename...>
       2  struct __and_;
       3  
       4  template<typename _Pp>
       5  struct __not_;
       6  
       7  template<typename _Tp>
       8  struct is_move_constructible;
       9  
      10  template<typename _Tp>
      11  struct is_nothrow_move_constructible;
      12  
      13  template<typename _Tp>
      14  struct is_move_assignable;
      15  
      16  template<typename _Tp>
      17  struct is_nothrow_move_assignable;
      18  
      19  template<typename _Tp>
      20  struct remove_reference;
      21  
      22  template<bool, typename _Tp = void>
      23  struct enable_if;
      24  
      25  template<bool _Cond, typename _Tp = void>
      26  using __enable_if_t = typename enable_if<_Cond, _Tp>::type;
      27  
      28  template<typename... _Cond>
      29  using _Require = __enable_if_t<__and_<_Cond...>::value>;
      30  
      31  template<typename _Tp>
      32  struct __is_tuple_like;
      33  
      34  template<typename _Tp>
      35  constexpr inline
      36    _Require<__not_<__is_tuple_like<_Tp>>,
      37  	   is_move_constructible<_Tp>,
      38  	   is_move_assignable<_Tp>>
      39  swap(_Tp&, _Tp&)
      40    noexcept(__and_<is_nothrow_move_constructible<_Tp>,
      41  	   is_nothrow_move_assignable<_Tp>>::value);