deduction guides for
     
      std::multiset
     
    
    
    
    
| 
           Defined in header
            
            
             <set>
            
            | ||
| 
           
            
             template
            
            
             <
            
             
             
              class
             
             InputIt,
              | (1) | (since C++17) | 
| 
           
            
             template
            
            
             <
            
             
             
              class
             
             Key,
             
              class
             
             Comp
             
              =
             
             
              
               std::
               
                less
               
              
             
             
              <
             
             Key
             
              >
             
             ,
              | (2) | (since C++17) | 
| 
           
            
             template
            
            
             <
            
            
             class
            
            InputIt,
            
             class
            
            Alloc
            
             >
            
             
             multiset
             
              (
             
             InputIt, InputIt, Alloc
             
              )
             
              | (3) | (since C++17) | 
| 
           
            
             template
            
            
             <
            
            
             class
            
            Key,
            
             class
            
            Alloc
            
             >
            
             
             multiset
             
              (
             
             
              
               std::
               
                initializer_list
               
              
             
             
              <
             
             Key
             
              >
             
             , Alloc
             
              )
             
              | (4) | (since C++17) | 
| 
           
            
             template
            
            
             <
            
            
             
              ranges::
              
               input_range
              
             
            
            R,
            
             class
            
            Compare
            
             =
            
            less
            
             <
            
            
             
              ranges::
              
               range_value_t
              
             
            
            
             <
            
            R
            
             >>
            
            ,
             
             
              class
             
             Alloc
             
              =
             
             
              
               std::
               
                allocator
               
              
             
             
              <
             
             
              
               ranges::
               
                range_value_t
               
              
             
             
              <
             
             R
             
              >>
             
             
              >
             
              | (5) | (since C++23) | 
| 
           
            
             template
            
            
             <
            
            
             
              ranges::
              
               input_range
              
             
            
            R,
            
             class
            
            Alloc
            
             >
            
             
             multiset
             
              (
             
             
              
               std::
               
                from_range_t
               
              
             
             , R
             
              &&
             
             , Alloc
             
              )
             
              | (6) | (since C++23) | 
        multiset
       
       to allow deduction from an iterator range (overloads
       
        (1,3)
       
       ) and
       
        
         std::initializer_list
        
       
       (overloads
       
        (2,4)
       
       ).
      
        multiset
       
       to allow deduction from a
       
        
         std::from_range_t
        
       
       tag and an
       
        
         input_range
        
       
       .
      
       These overloads participate in overload resolution only if
       
        InputIt
       
       satisfies
       
        
         LegacyInputIterator
        
       
       ,
       
        Alloc
       
       satisfies
       
        
         Allocator
        
       
       , and
       
        Comp
       
       does not satisfy
       
        
         Allocator
        
       
       .
      
       Note: the extent to which the library determines that a type does not satisfy
       
        
         LegacyInputIterator
        
       
       is unspecified, except that as a minimum integral types do not qualify as input iterators. Likewise, the extent to which it determines that a type does not satisfy
       
        
         Allocator
        
       
       is unspecified, except that as a minimum the member type
       
        Alloc::value_type
       
       must exist and the expression
       
        
         
          
           std::
           
            declval
           
          
         
         
          <
         
         Alloc
         
          &
         
         
          >
         
         
          (
         
         
          )
         
         .
         
          allocate
         
         
          (
         
         
          
           std::
           
            size_t
           
          
         
         
          {
         
         
          }
         
         
          )
         
        
       
       must be well-formed when treated as an unevaluated operand.
      
Notes
| Feature-test macro | Value | Std | Feature | 
|---|---|---|---|
| 
           __cpp_lib_containers_ranges
           | 202202L | (C++23) | Ranges-aware construction and insertion; overload (5,6) | 
Example
#include <set> int main() { // guide #2 deduces std::multiset<int> std::multiset s = {1, 2, 3, 4}; // guide #1 deduces std::multiset<int> std::multiset s2(s.begin(), s.end()); }