(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
modules/
var-tpl-concept-1.h
       1  
       2  template<class _CharT> struct char_traits;
       3  
       4  template<typename _CharT, typename _Traits = char_traits<_CharT>>
       5  class basic_string;
       6  
       7  typedef basic_string<char> string;
       8  
       9  template<typename> struct iterator_traits;
      10  
      11  template<bool _Cond> struct conditional;
      12  
      13  template<typename _Iter>
      14  inline constexpr bool disable_sized_sentinel_for = false;
      15  
      16  template<typename _Iter>
      17  concept sized_sentinel_for = !disable_sized_sentinel_for<_Iter>;
      18  
      19  template<typename _Iterator>
      20  class __normal_iterator
      21  {
      22    typedef iterator_traits<_Iterator> __traits_type;
      23  };
      24  
      25  template<typename _Iterator>
      26  class reverse_iterator
      27  {
      28  public:
      29    using iterator_concept
      30      = typename conditional<sized_sentinel_for<_Iterator>>::type;
      31  };
      32  
      33  
      34  template<typename _Iterator>
      35  requires (!sized_sentinel_for<_Iterator>)
      36  bool disable_sized_sentinel_for<reverse_iterator<_Iterator>> = true;
      37  
      38  
      39  template<typename _Iterator>
      40  bool operator==(const reverse_iterator<_Iterator>& __x,
      41  		const reverse_iterator<_Iterator>& __y);
      42  template<typename _Iterator>
      43  bool operator==(const __normal_iterator<_Iterator>& __lhs,
      44  		const __normal_iterator<_Iterator>& __rhs);
      45  
      46  template<typename _It >
      47  class common_iterator
      48  {
      49  public:
      50    friend bool operator==(const common_iterator& __x,
      51  			 const common_iterator& __y)
      52    {
      53      return __x._M_it == __y._M_it;
      54    }
      55  
      56  private:
      57    _It _M_it;
      58  };
      59  
      60  template<typename _It>
      61  struct iterator_traits<common_iterator<_It>>
      62  {
      63  };
      64  
      65  template<typename _CharT>
      66  struct char_traits
      67  {
      68    static bool eq(const _CharT& __c1, const _CharT& __c2)
      69    { return __c1 == __c2; }
      70  };