| 1289 | /// \synopsis template <class U, class... Args> \n T& emplace(std::initializer_list<U> il, Args &&... args); |
| 1290 | template <class U, class... Args> |
| 1291 | detail::enable_if_t<std::is_constructible<T, std::initializer_list<U>&, Args&&...>::value, T&> emplace(std::initializer_list<U> il, Args&&... args) { |
| 1292 | *this = nullopt; |
| 1293 | this->construct(il, std::forward<Args>(args)...); |
| 1294 | return value(); |
| 1295 | } |
| 1296 | |
| 1297 | /// Swaps this optional with the other. |
| 1298 | /// |