std::experimental::make_optional
From cppreference.com
                    
                                        
                    < cpp | experimental | optional
                    
                                                            
                    |   Defined in header  
<experimental/optional>
  | 
||
|   template< class T >  
constexpr optional<typename std::decay<T>::type>   | 
(library fundamentals TS) | |
Creates an optional object from value. Effectively calls 
optional<typename std::decay<T>::type>(std::forward<T>(value))
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)  |