1  
       2  template<typename _Iterator, typename>
       3  struct Trait;
       4  
       5  template<typename _Iterator>
       6  struct Trait<_Iterator, void> {};
       7  
       8  template<typename _Iterator>
       9  requires  true && true
      10  struct Trait<_Iterator, void>
      11  {
      12    template<typename _Iter> struct __cat {};
      13    
      14    template<typename _Iter> requires true struct __cat<_Iter> {};
      15  };
      16  
      17  template<typename _Iterator>
      18  requires  true
      19  struct Trait<_Iterator, void>
      20  {
      21    template<typename _Iter> struct __diff {};
      22    
      23    template<typename _Iter> requires true struct __diff<_Iter> {};
      24  };