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))
Parameters
| value | - | the value to construct optional object with | 
Return value
An optional object with value as the contained value.
Exceptions
Throws any exception thrown by the constructor of T.
See also
| constructs the optional object (public member function) |