| 411 | // Creates a non-empty 'optional<T>`. |
| 412 | template <typename T> |
| 413 | optional<typename std::decay<T>::type> make_optional(T&& v) { |
| 414 | return optional<typename std::decay<T>::type>(std::forward<T>(v)); |
| 415 | } |
| 416 | |
| 417 | template <typename T, typename... Args> |
| 418 | optional<T> make_optional(Args&&... args) { |