deduction guides for
     
      std::tuple
     
    
    
    
    
      From cppreference.com
     
     
     
     
     
     
     
        
         C++
        
        
         
          
           
          
          
         
        
       
       
        
         Utilities library
        
        
         
          
           
            
          
          
          
         
        
       
       | 
 | 
 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
        
         
          std::tuple
         
        
        
         
          
           
            
          
          
          
         
        
       
       | Member functions | ||||
| Non-member functions | ||||
| 
                
                 
                 
                 
                  
                   (until C++20)
                  
                 
                 
                  
                   (until C++20)
                  
                 
                 
                  
                   (until C++20)
                  
                 
                 
                  
                   (until C++20)
                  
                 
                 
                  
                   (until C++20)
                  
                 
                 
                  
                   (C++20)
                  
                 
                
                | ||||
| Helper concepts | ||||
| 
                
                 
                  
                   (C++23)
                  
                 
                
                | ||||
| Helper classes | ||||
| 
                
                 
                  
                   (C++23)
                  
                 
                
                | ||||
| 
                
                 
                  
                   (C++23)
                  
                 
                
                | ||||
| Deduction guides (C++17) | 
| 
           Defined in header
            
            
             <tuple>
            
            | ||
| 
           
            
             template
            
            
             <
            
            
             class
            
            ...
            
             UTypes
            
            
             >
            
             tuple ( UTypes... ) - > tuple < UTypes... > ; | (1) | (since C++17) | 
| 
           
            
             template
            
            
             <
            
            
             class
            
            T1,
            
             class
            
            T2
            
             >
            
             tuple ( std:: pair < T1, T2 > ) - > tuple < T1, T2 > ; | (2) | (since C++17) | 
| 
           
            
             template
            
            
             <
            
            
             class
            
            Alloc,
            
             class
            
            ...
            
             UTypes
            
            
             >
            
             tuple ( std:: allocator_arg_t , Alloc, UTypes... ) - > tuple < UTypes... > ; | (3) | (since C++17) | 
| 
           
            
             template
            
            
             <
            
            
             class
            
            Alloc,
            
             class
            
            T1,
            
             class
            
            T2
            
             >
            
             tuple ( std:: allocator_arg_t , Alloc, std:: pair < T1, T2 > ) - > tuple < T1, T2 > ; | (4) | (since C++17) | 
| 
           
            
             template
            
            
             <
            
            
             class
            
            Alloc,
            
             class
            
            ...
            
             UTypes
            
            
             >
            
             tuple ( std:: allocator_arg_t , Alloc, tuple < UTypes... > ) - > tuple < UTypes... > ; | (5) | (since C++17) | 
These deduction guides are provided for std::tuple to account for the edge cases missed by the implicit deduction guides, in particular, non-copyable arguments and array to pointer conversion.
Example
         Run this code
        
       #include <tuple> int main() { int a[2], b[3], c[4]; std::tuple t1{a, b, c}; // explicit deduction guide is used in this case }
      Retrieved from "
      
       https://en.cppreference.com/mwiki/index.php?title=cpp/utility/tuple/deduction_guides&oldid=117403
      
      "