std:: indirectly_movable_storable
| Iterator concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
              
  | 
             
              
  | 
             
              
  | 
            |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator primitives | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
              
  | 
             
              
  | 
            ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Algorithm concepts and utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Indirect callable concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
              
  | 
             
              
  | 
             
              
  | 
            |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Common algorithm requirements | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
              
  | 
             
              
  | 
             
              
  | 
            |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
              
  | 
             
              
  | 
             
              
  | 
            |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
              
  | 
             
              
  | 
            ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
              
  | 
            |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
              
  | 
             
              
  | 
            ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
           
           Defined in header
            
         
            
             <iterator>
            
           
           | 
         ||
| 
           
           
            
             template
            
            
             <
            
            
             class
            
            In,
            
             class
            
            Out
            
             >
            
             
         
             concept indirectly_movable_storable
             
              =
             
               | 
         (since C++20) | |
       The
       
        indirectly_movable_storable
       
       concept specifies the relationship between an
       
        
         indirectly_readable
        
       
       type and an
       
        
         indirectly_writable
        
       
       type. In addition to
       
        
         indirectly_movable
        
       
       , this concept specifies that the move from the
       
        indirectly_readable
       
       type can be performed via an intermediate object.
      
Semantic requirements
       
        In
       
       and
       
        Out
       
       model
       
        
         std
         
          ::
         
         
          indirectly_movable_storable
         
         
          <
         
         In, Out
         
          >
         
        
       
       only if given a dereferenceable value
       
        i
       
       of type
       
        In
       
       :
      
- 
        After the definition
        
         
          
           
            std::
            
             iter_value_t
            
           
          
          
           <
          
          In
          
           >
          
          obj
          
           (
          
          
           
            ranges::
            
             iter_move
            
           
          
          
           (
          
          i
          
           )
          
          
           )
          
          
           ;
          
         
        
        ,
        
objis equal to the value previously denoted by * i , and - 
        if
        
         
          
           
            std::
            
             iter_rvalue_reference_t
            
           
          
          
           <
          
          In
          
           >
          
         
        
        is an rvalue reference type,
        
         
          
           *
          
          i
         
        
        is placed in a valid but unspecified state after the initialization of
        
obj. 
Equality preservation
Expressions declared in requires expressions of the standard library concepts are required to be equality-preserving (except where stated otherwise).
See also
| 
          
           
            
             
              (C++20)
             
            
           
           
          | 
        
         specifies that values may be moved from an
         
          
           indirectly_readable
          
         
         type to an
         
          
           indirectly_writable
          
         
         type
         (concept)  | 
       
| 
          
           
            
             
              (C++20)
             
            
           
           
          | 
        
         specifies that values may be copied from an
         
          
           indirectly_readable
          
         
         type to an
         
          
           indirectly_writable
          
         
         type and that the copy may be performed via an intermediate object
         (concept)  |