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