std::make_optional
From cppreference.com
                    
                                        
                    
                    
                                                            
                    |   Defined in header <optional>
   | 
||
|   template< class T >  constexpr optional<typename std::decay<T>::type>   | 
(since C++14) | |
Creates an optional object from value. Effectively calls 
optional<typename std::decay<T>::type>(std::forward<T>(v))
Contents | 
[edit] Parameters
| value | - | the value to construct optional object with | 
[edit] Return value
An optional object with value as the contained value.
[edit] Exceptions
Throws any exception thrown by the constructor of T.
[edit] See also
|   constructs the optional object  (public member function)  | |