template<class T, class... Args> constexpr T& emplace(Args&&... args);
template<class T, class U, class... Args>
constexpr T& emplace(initializer_list<U> il, Args&&... args);
template<size_t I, class... Args>
constexpr variant_alternative_t<I, variant<Types...>>& emplace(Args&&... args);
template<size_t I, class U, class... Args>
constexpr variant_alternative_t<I, variant<Types...>>&
emplace(initializer_list<U> il, Args&&... args);