std::queue::emplace
From cppreference.com
                    
                                        
                    
                    
                                                            
                    
|   template< class... Args > 
void emplace( Args&&... args );  | 
 (since C++11)  (until C++17)  | 
|
|   template< class... Args > 
reference emplace( Args&&... args );  | 
(since C++17) | |
Pushes new element to the end of the queue. The element is constructed in-place, i.e. no copy or move operations are performed. The constructor of the element is called with exactly the same arguments as supplied to the function.
Effectively calls return c.emplace_back(std::forward<Args>(args)...);
Contents | 
[edit] Parameters
| args | - | arguments to forward to the constructor of the element | 
[edit] Return value
| (none) | (until C++17) | 
| A reference to the new element. | (since C++17) | 
[edit] Complexity
Identical to the complexity of Container::emplace_back.
[edit] See also
|    inserts element at the end  (public member function)  | 
|
|    removes the first element   (public member function)  |