std::ranges:: common_range
      From cppreference.net
     
     
     
        
         C++
        
        
         
          
           
          
          
         
        
       
       
        
         Ranges library
        
        
         
          
           
            
          
          
           
            
          
          
           
            
          
          
          
           
            
          
          
           
            
          
          
           
            
          
          
           
            
          
          
          
         
        
       
       | 
 | ||||||||||||||||||||||
| Range primitives | |||||||
| 
 | |||||||
| Range concepts | ||||||||||||||||||||||||||||||||||
| 
 | 
 | |||||||||||||||||||||||||||||||||
| Range factories | |||||||||
| 
 | |||||||||
| Range adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | ||||||||||||
| Helper items | |||||||||||||||||
| 
 | 
 | ||||||||||||||||
| 
           定义于头文件
            
            
             <ranges>
            
            | ||
| 
           
            
             template
            
            
             <
            
            
             class
            
            T
            
             >
            
             
             concept common_range
             
              =
             
              | (C++20 起) | |
       
        common_range
       
       概念是对
       
        
         range
        
       
       的细化,要求
       
        
         std::ranges::begin()
        
       
       和
       
        
         std::ranges::end()
        
       
       返回相同类型(例如所有标准库容器)。
      
示例
         运行此代码
        
       #include <ranges> struct A { char* begin(); char* end(); }; static_assert( std::ranges::common_range<A> ); struct B { char* begin(); bool end(); }; // 不是 common_range:begin/end 具有不同类型 static_assert( not std::ranges::common_range<B> ); struct C { char* begin(); }; // 不是 common_range,甚至不是 range:没有 end() static_assert( not std::ranges::common_range<C> ); int main() {}
参见
| 将 
           view
          转换为
           common_range
          (类模板) (范围适配器对象) |